首页 > 分享 > 七夕表白! C语言实现爱情红玫瑰

七夕表白! C语言实现爱情红玫瑰

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

#include <graphics.h>

#include <conio.h>

#include <math.h>

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 < 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.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;

}

void main()

{

 short *zBuffer;

 int  x, y, z, zBufferIndex;

 DOT  dot;

 initgraph(640, 480);   

 setbkcolor(WHITE);    

 cleardevice();     

 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 r = ~int((dot.r * h));    if (r < 0) r = 0; if (r > 255) r = 255;

     int g = ~int((dot.g * h));    if (g < 0) g = 0; if (g > 255) g = 255;

     int b = ~int((dot.r * dot.r * -80)); if (b < 0) b = 0; if (b > 255) b = 255;

     putpixel(x + 50, y - 20, RGB(r, g, b));

    }

   }

  Sleep(1);

 }

 delete[]zBuffer;

 _getch();

 closegraph();

}

相关知识

七夕送什么花表白好 情人节送花攻略大全
沈阳市沈河区鲜花店玫瑰鲜花开业花篮七夕表白鲜花玫瑰花束节日鲜花生日鲜花
2022年七夕节表白方式,不看就注定孤单了!
济宁花店情人节订及表白鲜花七夕鲜花生日鲜花玫瑰花买开业花篮大麦花篮
七夕情人节表白送什么花?七夕情人节送对花表白加成
传教士问题c语言
节日送花:送什么七夕情人节鲜花好?
红玫瑰花语大全(红玫瑰花花语是什么?)
七夕情人节礼物送什么好?
七夕花语大全及送什么花好

网址: 七夕表白! C语言实现爱情红玫瑰 https://m.huajiangbk.com/newsview162070.html

所属分类:花卉
上一篇: 七夕情人节玫瑰花简笔画欣赏
下一篇: 七彩仿真24k金箔玫瑰花礼盒单支