分形之分形龙

  拿着一条细长的纸带,把它朝下的一头拿上来,与上面的一头并到一起。用一句简单的话说,就是将纸带对折。接着,把对折后的纸带再对折,又再对折,重复这样的对折几十次……这就生成了分形龙的图形.

  上一节讲的是分形之列维(levy)曲线,它是将一条线段不停地分形成两条长度相等且相互垂直的线段,而生成的.分形龙的生成方式与列维曲线相似,也是将线段不停地分形成两条长度相等且相互垂直的线段,不同之处是其对折的方向是一个左一个右,而列维曲线则是始终朝着一边对折.

  

  核心代码:

  

复制代码

  static void FractalDragon(const Vector3& vStart, const Vector3& vEnd, Vector3* pVertices, bool left)

  {

  Vector3 vSub = vEnd - vStart;

  pVertices[0] = vStart;

  pVertices[2] = vEnd;

  Yreal alfa = atan2f(vSub.y, vSub.x);

  if (left)

  {

  alfa += YD_REAL_PI/4;

  }

  else

  {

  alfa -= YD_REAL_PI/4;

  }

  Yreal l = D3DXVec3Length(&vSub)/YD_REAL_SQRT_2;

  pVertices[1].x = vStart.x + cosf(alfa)*l;

  pVertices[1].y = vStart.y + sinf(alfa)*l;

  pVertices[1].z = 0.0f;

  }

  

复制代码

  

  

  

  

  

  

  

  

  

  

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值