dragoncurves.htm

来自「电脑图学(Computer Graphics)是资料结构、演算法与数学的应用」· HTM 代码 · 共 145 行

HTM
145
字号
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>







  
  
  
  
  
  
  
  <link rel="stylesheet" href="css/stdlayout.css" type="text/css">







  
  
  
  
  
  
  
  <link rel="stylesheet" href="css/print.css" type="text/css">







  
  
  
  
  
  
  
  <meta content="text/html; charset=gb2312" http-equiv="content-type">







  
  
  
  
  
  
  
  <title>龙形曲线</title>
</head>


<body>







<h3><a href="http://caterpillar.onlyfun.net/GossipCN/index.html">From
Gossip@caterpillar</a></h3>







<h1><a href="ComputerGraphics.htm">Computer Graphics:&nbsp;龙形曲线</a></h1>







龙形曲线是由NASA的物理学家J.E.Heighway所提出,这种曲线每次前进一定长度,然后转动90度或-
90度继续前进,但是走过的路径并不重复。 <br>

<br>
下图为龙形曲线的1次至4次绘图结果:<br>







<img style="width: 400px; height: 125px;" alt="" src="images/dragonCurves-1.jpg"><br>







<br>









Java程式绘图如下所示: <br>

<ul>
  <li> DragonCurve.java
  </li>
</ul>

<pre>package onlyfun.caterpillar.graphics.recursive;<br> <br>import java.awt.Color;<br>import java.awt.Graphics;<br>import javax.swing.JApplet;<br>import onlyfun.caterpillar.graphics.Turtle;<br> <br>public class DragonCurve extends JApplet {<br>    private Turtle t;<br>    <br>    public void init() {    <br>        t = new Turtle(); <br>        <br>        setBackground(Color.black); <br>    }<br>    <br>    public void dragon(int n, double a, Turtle t) { <br>        if(n == 0) <br>            t.move(4); <br>        else { <br>            dragon(n-1, 90, t); <br>            t.turn(a); <br>            dragon(n-1, -90, t); <br>        } <br>    } <br> <br>    public void paint(Graphics g) {<br>        g.setColor(Color.yellow);<br>        <br>        t.setGraphics(g);<br>        t.window(0, 0, getSize().width, getSize().height); <br>        t.view(0, 0, getSize().width, getSize().height); <br><br>        t.setpoint(150, 150); <br>        dragon(10, 90, t); <br>    }     <br>}</pre>
<br>
<img style="width: 167px; height: 213px;" alt="" src="images/dragonCurves-2.jpg"><br>
<br>

其实也并不一定要以90度为单位来转弯,您可以自行设定为其它的角度来试试看会画出什么图形。<br>
<br>







</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?