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: 龙形曲线</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 + -
显示快捷键?