c语言如何实现玫瑰花

c语言实现玫瑰花的方法:首先定义全局变量,并定义结构体;然后设置输出花柄、花柄、绿叶、花萼;最后创建绘图窗口,输出完整花朵。

c语言如何实现玫瑰花

c语言实现玫瑰花的方法:

#include #include ?#include #include #include #pragma comment(lib,"winmm.lib")//定义全局变量int rosesize = 500;int h = -250;//定义结构体struct DOT {double x;double y;double z;double r;double g;}; bool calc(double a,double b,double c,DOT &d) {double j, n, o, w, z; if (c > 60) { //花柄d.x = sin(a * 7)*(13 + 5 / (0.2 + pow(b * 4, 4))) - sin(b) * 50;d.y = b*rosesize + 50;d.z = 625 + cos(a * 7)*(13 + 5 / (0.2 + pow(b * 4, 4))) + b * 400;d.r = a * 1 - b / 2;d.g = a;return true;}double A = a * 2 - 1;double B = b * 2 - 1;if (A*A + B*B  37) {j = (int(c) & 1);n = j ? 6 : 4;o = 0.5 / (a + 0.01) + cos(b * 125) * 3 - a * 300;w = b * h;d.x = o * cos(n) + w * sin(n) + j * 610 - 390;d.y = o * sin(n) - w * cos(n) + 550 - j * 350;d.z = 1180 + cos(B + A) * 99 - j * 300;d.r = 0.4 - a * 0.1 + pow(1 - B * B, -h * 6) * 0.15 - a * b * 0.4 + cos(a + b) / 5 +      pow(cos((o * (a + 1) + (B > 0 ? w : -w)) / 25), 30) * 0.1 * (1 - B * B);d.g = o / 1000 + 0.7 - o * w * 0.000003;return true;} if (c > 32) { //花萼c = c*1.16 - 0.15;o = a * 45 - 20;w = b * b * h;z = o * sin(c) + w * cos(c) + 620;d.x = o * cos(c) - w * sin(c);d.y = 28 + cos(B * 0.5) * 99 - b * b * b * 60 - z / 2 - h;d.z = z;d.r = (b * b * 0.3 + pow((1 - (A * A)), 7)*0.15 + 0.3)*b;d.g = b * 0.7;return true;} //花朵o = A*(2 - b)*(80 - c * 2);w = 99 - cos(A) * 120 - cos(b)*(-h - c * 4.9) + cos(pow(1 - b, 7)) * 50 + c * 2;z = o * sin(c) + w * cos(c) + 700;d.x = o * cos(c) - w * sin(c);d.y = B * 99 - cos(pow(b, 7)) * 50 - c / 3 - z / 1.35 + 450;d.z = z;d.r = (1 - b / 1.2) * 0.9 + a * 0.1;d.g = pow((1 - b), 20) / 4 + 0.05;return true;} return false;} int main(){short ?*zBuffer;int x, y, z, zBufferIndex;DOT dot;initgraph(640,480);//创建绘图窗口 /*添加音乐*/mciSendString("open BadApple.mp3 alias BadApple", NULL, 0, NULL);mciSendString("play BAdApple", NULL, 0, NULL); setbkcolor(YELLOW);cleardevice();zBuffer = new short[rosesize * rosesize];memset(zBuffer, 0, sizeof(short) * rosesize * rosesize);for (int j = 0; j < 2000; j++)// && !_kbhit(){for (int i = 0; i  rosesize) continue;zBufferIndex = y*rosesize + x;if (!zBuffer[zBufferIndex] || zBuffer[zBufferIndex] > z){zBuffer[zBufferIndex] = z;//画点int r = ~int((dot.r*h));?if (r  255)r = 255; int g = ~int((dot.g*h));if (g  255)g = 255; int b = ~int((dot.r*dot.r*-80));if (b  255)b = 255; putpixel(x + 50, y - 20, RGB(r, g, b));}}Sleep(100);}delete[]zBuffer;getchar();closegraph();return 0;}

608da2400424588ea8f34fc576613f0.png

e09e42cf1eec8d5ef00636f12060129.png

相关学习推荐:C视频教程

立即学习“C语言免费学习笔记(深入)”;

以上就是c语言如何实现玫瑰花的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1434658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:03:55
下一篇 2025年12月17日 10:04:08

相关推荐

  • return在c语言中是什么意思

    return在c语言中的意思为“返回”。return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。 函数是C语言的基本构件,一个C程序可以由一个主函数和若干个子程序函数构成,由主函数调用其它子程序函数,其他子程…

    2025年12月17日
    000
  • c语言程序的基本单位是什么

    c语言程序的基本单位是函数,函数是C程序的基本组成单位,一个C语言程序中仅有一个main函数,除main函数之外可以有若干个其它的函数,每个函数实现某一特定的操作。 推荐:《C语言教程》 C语言程序是由函数构成的,函数是C程序的基本组成单位,一个C语言程序中仅有一个main()函数,除main函数之…

    2025年12月17日
    000
  • 用c语言编写的代码程序是什么?

    用c语言编写的代码程序是一个源程序。源程序是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 教程推荐:《c语言教程视频》 源程序是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。  在现代程序语言中,源代码可以是以书籍或者…

    2025年12月17日
    000
  • c语言编译后生成什么文件

    c语言编译后生成“.OBJ”的二进制文件。C语言源程序经过C语言编译程序编译之后,生成一个后缀为“.OBJ”的二进制文件,最后还要由称为“连接程序”的软件把此“.OBJ”文件与c语言提供的各种库函数连接在一起,生成一个后缀“.EXE”文件。 C语言源程序经过C语言编译程序编译之后,生成一个后缀为“.…

    2025年12月17日
    000
  • C语言的标识符由什么组成

    C语言的标识符由字母、数字、下划线组成,并且第一个字符必须是字母或下划线,不能是数字。在标识符中,字母的大小写是有区别的,例如BOOK与book是两个不同的标识符。 定义变量时,我们使用了诸如 a、abc、mn123 这样的名字,它们都是程序员自己起的,一般能够表达出变量的作用,这叫做标识符。 标识…

    2025年12月17日
    000
  • c语言程序的执行总是起始于什么?

    c语言程序的执行总是起始于main函数。在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。 教程推荐:《c语言教程视频》 C语言是一种高级语言,C语言源程序经过C语言编译程序编译之后,生成一个后缀为.OBJ的二进制文件(称为…

    2025年12月17日
    000
  • c语言实现两个有序链表的合并(代码示例)

    本篇文章通过代码示例介绍一下使用c语言合并两个有序链表的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 教程推荐:《c语言教程视频》 c语言实现两个有序链表的合并 现有两个有序单链表,通过代码实现将两个单链表合并为一个有序的新表,要求使用旧表的空间,不能新分配内存 立即学习“…

    2025年12月17日
    000
  • 可运行的c语言程序的扩展名为什么?

    可运行的c语言程序的扩展名为“.exe”。c语言程序经过“编译程序”编译之后,生成一个后缀为“.obj”的二进制文件;然后由“连接程序”,把此“.obj”文件与c语言提供的各种库函数连接在一起,生成一个后缀“.exe”的可执行文件。 教程推荐:《c语言教程视频》 C语言源程序经过C语言编译程序编译之…

    2025年12月17日
    000
  • c语言中*是什么意思

    c语言中*的是指针与文件的表示符号,指针数组的定义表达式【int *c_zhi[100]】,表示100个指针数组元素的存在;【*c[2]】是指针数组,它是一个数组的变形,其实质就是数组。 在C语言中*是指针与文件的表示符号。 2、在C语言中c[ ]是指数组的表达方式。 3、指针数组的定义表达式:in…

    2025年12月17日 好文分享
    000
  • 对c语言的认识和想法是什么

    对c语言的认识和想法是:1、C是一种通用的编程语言, 广泛用于系统软件与应用软件开发;2、C语言具有高效、 灵活、 功能丰富、 表达力强和较高的可移植性等特点, 在程序员中备受青睐;3、C语言是一个有结构化程序设计、 具有变量作用域的语言。 【相关学习推荐:C语言教程视频】 对c语言的认识和想法是:…

    2025年12月17日
    000
  • c语言如何求最大值

    c语言求最大值的方法:首先在Vc里面编辑代码,并保存【.c】文件;然后点击build按钮检查是否有警告,并点击运行;最后输入三个数进行代码测试即可。 【相关学习推荐:C语言教程视频】 c语言求最大值的方法: 1、首先在vc6.0里面编辑代码,保存为.c文件,然后点击build按钮(或者按下键盘F7快…

    2025年12月17日 好文分享
    000
  • c语言提供的合法的数据类型关键字是什么

    c语言提供的合法的数据类型关键字是“float”,是浮点型数据类型,用于存储单精度浮点数或双精度浮点数,浮点类型的单精度值具有4个字节,包括一个符号位、一个8位二进制指数和一个23位尾数。 推荐:《c语言教程》 c语言提供的合法的数据类型关键字是“float”,是浮点型数据类型,用于存储单精度浮点数…

    2025年12月17日
    000
  • fwrite函数的一般调用形式是什么?

    fwrite函数的一般调用形式是“fwrite(buffer,size,count,fp);”;其中,buffer是准备输出的数据块的起始地址,size是每个数据块的字节数,count用来指定每写一次或输出的数据块,fp为文件指针。 fwrite() 是C 语言标准库中的一个文件处理函数,功能是向指…

    2025年12月17日
    000
  • 在嵌套使用if语句时,C语言规定else总是什么?

    在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对,与书写格式无关。if意为“如果”,else意为“否则”,“if else”的结构为:“if(判断条件){语句块1}else{语句块2}”。 C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与…

    2025年12月17日
    000
  • c语言中do while语句怎么使用

    使用c语言中do while语句的方法:do while的基本结构是【do{ }while();】,while语句中的内容如果成立了,则执行while循环,不成立结束while循环。 【相关学习推荐:C语言教程视频】 使用c语言中do while语句的方法: 1、首先我们还是定义几个变量 int i…

    2025年12月17日 好文分享
    000
  • c语言大小写字母怎么转化?

    在C语言中,小写字母转换为大写字母的方法是将小写字母的ASCII码值减去32(例:A=a-32);大写字母转换为小写字母的的方法是将大写字母的ASCII码值加上32(例:a=A+32)即可。 在 C 语言中区分字母的大小写,利用 ASCII 码中大写字母和小写字母之间的转换关系(差值为 32),可以…

    2025年12月17日
    000
  • c语言console.WriteLine什么意思?

    console.WriteLine是指输出到屏幕,常用于控制台程序中,输出内容为是一行。Console.WriteLine()方法是将要输出的字符串与换行控制字符一起输出,当次语句执行完毕时,光标会移到目前输出字符串的下一行。 Console.Write()和Console.WriteLine()都…

    2025年12月17日
    000
  • c语言提供的合法的数据类型关键字是什么?

    c语言提供的合法的数据类型关键字是:char、double、enum、float、int、long、short、signed、struct、union、unsigned、void。 c语言提供的合法的数据类型关键字(12个): (1). char :声明字符型变量或函数 (2). double :声…

    2025年12月17日
    000
  • c程序的执行是从什么开始到什么结束?

    C程序的入口是main函数,一般来说只要是正常运行结束的都是从main函数的第一句话开始,最后一句结束。 例如: int main()//程序开始{printf(“Hello!n”);return 0;//程序结束,返回值} 但如果程序执行到中间遇到 return(main函数里的) exit(不管…

    2025年12月17日 好文分享
    000
  • 用c语言编写的程序需要用什么程序翻译后计算机才能识别

    用c语言编写的程序需要用“编译程序”翻译后计算机才能识别。用C语言编写的程序必须翻译成可执行程序后才能够在计算机上运行,在此过程中必须通过编译程序进行处理。 由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。源程序经过C编译程序编译生成后缀为“.obj”的二进制文件(称为目标文件),然…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信