0
点赞
收藏
分享

微信扫一扫

c++画圣诞树

jjt二向箔 2022-05-03 阅读 129
c++

include<iostream>

using namespace std;

#include<cmath>

 

#define PI 3.14159265359

#define T px + scale * r * cos(theta), py + scale * r * sin(theta)

 

float sx, sy;

 

float sdCircle(float px, float py, float r)

{

    float dx = px - sx, dy = py - sy;

    return sqrt(dx * dx + dy * dy) - r;

}

 

float opUnion(float d1, float d2)

{

    return d1 < d2 ? d1 : d2;

}

 

float f(float px, float py, float theta, float scale, int n)

{

    float d = 0.0f;

 

 for (float r = 0.0f; r < 0.8f; r += 0.02f)

 {

  d = opUnion(d, sdCircle(T, 0.05f * scale * (0.95f - r)));

 }

 

 if (n > 0)

 {

  for (int t = -1; t <= 1; t += 2)

  {

   float tt = theta + t * 1.8f;

   float ss = scale * 0.9f;

 

   for (float r = 0.2f; r < 0.8f; r += 0.1f)

   {

    d = opUnion(d, f(T, tt, ss * 0.5f, n - 1));

    ss *= 0.8f;

   }

  }

 }

 

    return d;

}

 

int main()

{

 cout << "\t\t********** Merry Christmas ! **********" << endl;

 cout << endl;

    

 int n = 3;

 for (sy = 0.8f; sy > 0.0f; sy -= 0.02f, cout << endl)

 {

  for (sx = -0.

举报

相关推荐

0 条评论