C语言编写实现玫瑰花

1.#include <dos.h>
 
2.#include <graphics.h>
 
3.#include <math.h>
 
4./*玫瑰花*/
 
5.#define FNX(x) (int)(xo+(x)*1.0)
 
6.#define FNY(y) (int)(getmaxy()-(yo+(y)*1.0))
 
7.#define FNX2(phi) cos(phi)*ac-sin(phi)*bs
 
8.#define FNY2(phi) cos(phi)*as+sin(phi)*bc
 
9.
 
10./*画旋转的椭圆*/
 
11.void elli(int xo,int yo,int a,int b,double theta)
 
12.{
 
13.int i;
 
14.double da,c,s,ac,as,bc,bs,xf,yf,phi,x,y;
 
15.theta=theta*0.01745;
 
16.da=3*0.1745;
 
17.c=cos(theta);s=sin(theta);
 
18.ac=a*c;as=a*s;bc=b*c;bs=b*s;
 
19.x=FNX2(0);y=FNY2(0);
 
20.moveto(FNX(x),FNY(y));
 
21.for(i=1;i<=360;i++)
 
22.{
 
23.phi=i*da;xf=x*cos(phi)*0.1;yf=b*sin(phi)*0.1;
 
24.x=FNX2(phi);y=FNY2(phi);
 
25.lineto(FNX(x),FNY(y));
 
26.}
 
27.}
 
28.
 
29./*花*/
 
30.void hua(int x,int y)
 
31.{
 
32.register i;
 
33./*画粉红色玫瑰*/
 
34.setcolor(12);
 
35.arc(x+65,y-60,150,350,8);
 
36.arc(x+66,y-54,300,470,8);
 
37.arc(x+65,y-56,30,230,10);
 
38.arc(x+64,y-57,300,490,17);
 
39.ellipse(x+73,y-30,250,450,27,40);
 
40.ellipse(x+59,y-30,100,290,27,40);
 
41.ellipse(x+65,y-40,140,270,20,30);
 
42.setfillstyle(SOLID_FILL,5);
 
43.floodfill(x+65,y-20,12);
 
44./*画红色玫瑰*/
 
45.arc(x,y,150,350,12);
 
46.arc(x+1,y+8,280,470,12);
 
47.arc(x,y+2,30,230,16);
 
48.arc(x,y+3,80,240,28);
 
49.arc(x+2,y+8,180,330,22);
 
50.arc(x-2,y+2,310,460,25);
 
51.ellipse(x-12,y+30,120,300,30,40);
 
52.ellipse(x+10,y+28,250,423,30,42);
 
53.ellipse(x-4,y+10,290,393,30,40);
 
54.setfillstyle(SOLID_FILL,4);
 
55.floodfill(x+5,y+31,12);
 
56./*画紫色花骨朵*/
 
57.ellipse(x+120,y+5,0,360,15,25);
 
58.setfillstyle(SOLID_FILL,1);
 
59.floodfill(x+120,y,12);
 
60./*画黄色花骨朵*/
 
61.ellipse(x-70,y+10,0,360,14,20);
 
62.setfillstyle(SOLID_FILL,14);
 
63.floodfill(x-70,y+10,12);
 
64.setcolor(10);
 
65./*画红花花萼*/
 
66.ellipse(x-15,y+32,190,310,30,35);
 
67.ellipse(x+16,y+32,235,355,26,35);
 
68.ellipse(x,y+35,190,350,43,50);
 
69.arc(x,y+82,190,350,6);
 
70.setfillstyle(SOLID_FILL,2);
 
71.floodfill(x,y+75,10);
 
72./*画粉花花萼*/
 
73.ellipse(x+50,y-48,190,320,22,50);
 
74.ellipse(x+80,y-48,220,350,22,50);
 
75.ellipse(x+65,y-28,180,360,36,50);
 
76.floodfill(x+65,y+18,10);
 
77./*画主枝*/
 
78.for(i=0;i<3;i++ )
 
79.{
 
80.ellipse(x-98,y+100+i,255,371,100,80);
 
81.ellipse(x-20,y+30+i,260,358,140,140);
 
82.ellipse(x+224,y+20+i,180,218,160,140);
 
83.}
 
84./*画侧枝*/
 
85.ellipse(x+70,y+34,180,233,140,140);
 
86.ellipse(x,y+40,205,255,100,120);
 
87.ellipse(x+135,y-30,209,249,72,120);
 
88.ellipse(x,y+20,263,301,100,120);
 
89.ellipse(x+85,y-10,278,305,100,120);
 
90.ellipse(x+100,y-62,282,308,90,120);

 

阅读更多

没有更多推荐了,返回首页