绘制Koch曲线

        提供绘制Koch曲线的html5代码一坨:

<html>
  <canvas id="blackboard" width="1600" height="1000">
  </canvas>
  <script>
    function draw()
    {
      var pi = 3.14159265;

      // 获取画布
      var canv = document.getElementById("blackboard");
      var context = canv.getContext("2d");

      var unit = 300;
      var delta = 200;

      var length = unit;

      var x0 = delta;
      var y0 = delta + Math.sqrt(3)*unit;

      var s = "slsrsls";
      var lengths = new Array();
      var len1 = 1/3* length*3;
      var len2 = 2/3* length*3;

      lengths[0] = len1;
      lengths[1] = len2 - len1;
      lengths[2] = len2 - len1;
      lengths[3] = length*3 - len2;
      var secs = 4;
      var head = 0;

      //计算每段的长度,迭代6次
      for(var i=0; i<6; i++)
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是绘制Koch曲线的OpenGL实现的代码: ```c++ #include <GL/glut.h> void koch(int x1, int y1, int x2, int y2, int it) { if (it == 0) { glBegin(GL_LINES); glVertex2f(x1, y1); glVertex2f(x2, y2); glEnd(); } else { int deltaX = x2 - x1; int deltaY = y2 - y1; int x3 = x1 + deltaX / 3; int y3 = y1 + deltaY / 3; int x4 = x3 + (int)(cos(M_PI / 3) * deltaX / 3 - sin(M_PI / 3) * deltaY / 3); int y4 = y3 + (int)(sin(M_PI / 3) * deltaX / 3 + cos(M_PI / 3) * deltaY / 3); int x5 = x1 + 2 * deltaX / 3; int y5 = y1 + 2 * deltaY / 3; koch(x1, y1, x3, y3, it - 1); koch(x3, y3, x4, y4, it - 1); koch(x4, y4, x5, y5, it - 1); koch(x5, y5, x2, y2, it - 1); } } void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); // 设置颜色 glLineWidth(1.0); // 设置线宽 glPushMatrix(); koch(100, 200, 400, 200, 5); // 绘制Koch曲线 glPopMatrix(); glFlush(); } void init() { glClearColor(0.0, 0.0, 0.0, 0.0); // 设置清除颜色 glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 500.0, 0.0, 500.0); // 设置裁剪窗口大小 } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); glutCreateWindow("Koch Curve"); init(); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` 这段代码使用OpenGL绘制了一条Koch曲线。在`koch`函数中,使用递归的方式不断细分线段,最终绘制Koch曲线。`display`函数中使用`glBegin`和`glEnd`函数绘制线段,`init`函数设置了清除颜色和裁剪窗口大小。在`main`函数中,初始化OpenGL并设置窗口大小、位置以及标题,然后注册回调函数`display`,最后进入主循环。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值