c语言编写玫瑰花最简单代码

c语言编写玫瑰花最简单代码,第1张

#include<iostream>#include<cmath>usingnamespacestd;voidgetRoseNum(intlower,intupper);boolisRoseNum(intn);voidmain(){intupper,lower;cout<<“请输入下界:”<<endl;cin>>lower;cout<<“请输入上界:”<<endl;cin>>upper。

cout<<“所有玫瑰花数:”getRoseNum(lower,upper);}voidgetRoseNum(intlower,intupper){if((lower<1000)||(upper>9999)){cout<<“上下界错误!”<<endl;return;}for(inti=lower;i<=upper;i++){if(isRoseNum(i))。

注意事项:

C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现为以下三个方面:

其一,广泛性。C语言的运算范围的大小直接决定了其优劣性。C语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。

其二,简洁性。9类控制语句和32个关键字是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的 *** 作,提高其工作效率,同时还能够支持高级编程,避免了语言切换的繁琐。

其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。

仅供参考:

1、你那个把几个数值和画笔类型改一下就能满足要求

2、给你一个完善的demo参考下

////////////////////////////////////////////////////////////////////

// 程序名称:一朵逼真的玫瑰花

// 编译环境:VC6.0,EasyX 2011惊蛰版

// 作    者:孙琨

// 编写地点:XUST

// 编写时间:2013年11月11日

// 编写目的:赠给未来可能看到的你

 

#include <graphics.h>

#include <conio.h>

#include <math.h>

 

// 定义全局变量

int rosesize = 500

int h = -250

 

// 定义结构体

struct DOT

{

    double x

    double y

    double z

    double red      // 红色

    double green    // 绿色

    // blue(蓝色)通过red计算

}

 

// 计算点

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.red = a * 1 - b / 2

        d.green = a

        return true

    }

 

    double A = a * 2 - 1

    double B = b * 2 - 1

    if(A * A + B * B < 1)

    {

        if(c > 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.red = 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.green = 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.red = (b * b * 0.3 + pow((1 - (A * A)), 7) * 0.15 + 0.3) * b

            d.green = 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.red = (1 - b / 1.2) * 0.9 + a * 0.1

        d.green = pow((1 - b), 20) / 4 + 0.05

        return true

    }

 

    return false

}

 

 

// 主函数

void main()

{

    // 定义变量

    short    *zBuffer

    int        x, y, z, zBufferIndex

    DOT        dot

 

    // 初始化

    initgraph(640, 480)                // 创建绘图窗口

    setbkcolor(WHITE)                    // 设置背景色为白色

    cleardevice()                        // 清屏

 

    // 初始化 z-buffer

    zBuffer = new short[rosesize * rosesize]

    memset(zBuffer, 0, sizeof(short) * rosesize * rosesize)

 

    for(int j = 0 j < 2000 && !_kbhit() j++)    // 按任意键退出

    {

        for(int i = 0 i < 10000 i++)            // 减少是否有按键的判断

            if(calc(double(rand()) / RAND_MAX, double(rand()) / RAND_MAX, rand() % 46 / 0.74, dot))

            {

                z = int(dot.z + 0.5)

                x = int(dot.x * rosesize / z - h + 0.5)

                y = int(dot.y * rosesize / z - h + 0.5)

                if (y >= rosesize) continue

 

                zBufferIndex = y * rosesize + x

 

                if(!zBuffer[zBufferIndex] || zBuffer[zBufferIndex] > z)

                {

                    zBuffer[zBufferIndex] = z

 

                    // 画点

                    int red = ~int((dot.red * h))

                    if (red < 0)

                        red = 0    

                    if (red > 255)

                        red = 255

 

                    int green = ~int((dot.green * h))

                    if (green < 0)

                        green = 0

                    if (green > 255)

                        green = 255

 

                    int blue = ~int((dot.red * dot.red * -80))

                    if (blue < 0) 

                        blue = 0    

                    if (blue > 255) 

                        blue = 255

 

                    putpixel(x + 50, y - 20, RGB(red, green, blue))

                }

            }

 

        Sleep(1)

    }

 

    // 退出

    delete []zBuffer

    getch()

    closegraph()

}

看了效果自己可以调节#include <stdio.h>

#include <dos.h>

#include <graphics.h>

#include <math.h>#define FNX(x) (int)(xo+(x)*1.0)

#define FNY(y) (int)(getmaxy()-(yo+(y)*1.0))

#define FNX2(phi) cos(phi)*ac-sin(phi)*bs

#define FNY2(phi) cos(phi)*as+sin(phi)*bc/*画旋转的椭圆*/

void elli(int xo,int yo,int a,int b,double theta)

{

int i

double da,c,s,ac,as,bc,bs,xf,yf,phi,x,y

theta=theta*0.01745

da=3*0.1745

c=cos(theta)s=sin(theta)

ac=a*cas=a*sbc=b*cbs=b*s

x=FNX2(0)y=FNY2(0)

moveto(FNX(x),FNY(y))

for(i=1i<=360i++)

{

phi=i*daxf=x*cos(phi)*0.1yf=b*sin(phi)*0.1

x=FNX2(phi)y=FNY2(phi)

lineto(FNX(x),FNY(y))

}

}/*花*/

void hua(int x,int y)

{

register i

/*画粉红色玫瑰*/

setcolor(12)

arc(x+65,y-60,150,350,8)

arc(x+66,y-54,300,470,8)

arc(x+65,y-56,30,230,10)

arc(x+64,y-57,300,490,17)

ellipse(x+73,y-30,250,450,27,40)

ellipse(x+59,y-30,100,290,27,40)

ellipse(x+65,y-40,140,270,20,30)

setfillstyle(SOLID_FILL,5)

floodfill(x+65,y-20,12)

/*画红色玫瑰*/

arc(x,y,150,350,12)

arc(x+1,y+8,280,470,12)

arc(x,y+2,30,230,16)

arc(x,y+3,80,240,28)

arc(x+2,y+8,180,330,22)

arc(x-2,y+2,310,460,25)

ellipse(x-12,y+30,120,300,30,40)

ellipse(x+10,y+28,250,423,30,42)

ellipse(x-4,y+10,290,393,30,40)

setfillstyle(SOLID_FILL,4)

floodfill(x+5,y+31,12)

/*画紫色花骨朵*/

ellipse(x+120,y+5,0,360,15,25)

setfillstyle(SOLID_FILL,1)

floodfill(x+120,y,12)

/*画黄色花骨朵*/

ellipse(x-70,y+10,0,360,14,20)

setfillstyle(SOLID_FILL,14)

floodfill(x-70,y+10,12)

setcolor(10)

/*画红花花萼*/

ellipse(x-15,y+32,190,310,30,35)

ellipse(x+16,y+32,235,355,26,35)

ellipse(x,y+35,190,350,43,50)

arc(x,y+82,190,350,6)

setfillstyle(SOLID_FILL,2)

floodfill(x,y+75,10)

/*画粉花花萼*/

ellipse(x+50,y-48,190,320,22,50)

ellipse(x+80,y-48,220,350,22,50)

ellipse(x+65,y-28,180,360,36,50)

floodfill(x+65,y+18,10)

/*画主枝*/

for(i=0i<3i++)

{

ellipse(x-98,y+100+i,255,371,100,80)

ellipse(x-20,y+30+i,260,358,140,140)

ellipse(x+224,y+20+i,180,218,160,140)

}

/*画侧枝*/

ellipse(x+70,y+34,180,233,140,140)

ellipse(x,y+40,205,255,100,120)

ellipse(x+135,y-30,209,249,72,120)

ellipse(x,y+20,263,301,100,120)

ellipse(x+85,y-10,278,305,100,120)

ellipse(x+100,y-62,282,308,90,120)

ellipse(x-50,y-10,277,314,30,120)

ellipse(x+70,y+80,222,266,52,120)

ellipse(x-60,y-45,229,266,52,120)

ellipse(x+79,y-45,229,266,52,120)

ellipse(x+84,y,224,273,52,120)

ellipse(x+110,y+40,240,282,100,120)

/*画紫花骨朵花萼*/

ellipse(x+120,y-6,200,340,17,25)

ellipse(x+120,y+7,160,380,17,27)

floodfill(x+122,y+30,10)

/*画黄花骨朵花萼*/

ellipse(x-70,y+15,140,390,17,20)

ellipse(x-75,y-10,205,340,10,30)

ellipse(x-60,y-10,195,340,5,30)

floodfill(x-70,y+32,10)

/*画叶*/

/*画右边的叶子*/

elli(x+168,y+282,10,20,-40)

elli(x+160,y+252,8,16,260)

elli(x+145,y+270,8,16,-15)

elli(x+156,y+224,10,20,-45)

elli(x+150,y+200,8,16,270)

elli(x+135,y+220,8,16,-10)

elli(x+146,y+144,8,16,-80)

elli(x+130,y+130,6,12,235)

elli(x+125,y+154,7,14,-10)

elli(x+78,y+98,6,12,-90)

elli(x+60,y+90,5,10,180)

elli(x+70,y+109,5,10,-45)

/*画左边的叶子*/

elli(x-125,y+270,12,24,60)

elli(x-95,y+270,10,20,10)

elli(x-110,y+245,10,20,90)

elli(x-105,y+220,10,20,45)

elli(x-100,y+190,8,16,135)

elli(x-75,y+210,8,16,-45)

/*画中间的叶子*/

elli(x+65,y+190,10,20,-45)

elli(x+40,y+185,8,16,0)

elli(x+55,y+165,8,16,90)

}/*主程序*/

main()

{

int driver=VGA,mode=VGAHI

initgraph(&driver,&mode,"C:\TC")

cleardevice()

hua(450,90)

setcolor(10)

rectangle(0,0,639,479)

getch()

closegraph()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8057917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存