Lisajous2
to Lisajous2 :amp [:i.step 1] 1
(local
"po.x "po.y "omega.x "omega.y
"loop.step "enlarge "reduce
"colorList "cn "cl
)
name 2 "omega.x
name 3 "omega.y
name 5 "loop.step
name 1.5 "enlarge
name 0.97 "reduce
;make "colorList [[255 0 0][225 0 0][195 0 0][165 0 0][135 0 0]
; [0 255 0][0 225 0][0 195 0][0 165 0][0 135 0]]
make "colorList [[255 255 0][225 225 0][195 195 0][165 165 0][135 135 0]
[0 255 255][0 225 225][0 195 195][0 165 165][0 135 135]]
;make "colorList [[0 0 255][0 0 225][0 0 195][0 0 165][0 0 135]
; [255 0 255][225 0 225][195 0 195][165 0 165][135 0 135]]
make "cn 1
make "cl count :colorList
window
(for "amp.loop :loop.step :amp [
penup
test :cn > :cl
iftrue [make "cn 1]
setpc item :cn :colorList
(for "i 0 360 [
make "po.x (* * :amp.loop sin * :omega.x :i :enlarge)
make "po.y (* :amp.loop sin * :omega.y :i)
setxy sentence :po.x :po.y
pendown
] :i.step)
make "cn (+ :cn 1)
make "i.step (* :i.step :reduce)
] :loop.step)
end
Lisajous2 120
Lisajous1の応用です。振幅数 amp.loop
を、徐々に大きくしながら同じ振動数のリサージュ曲線を描いています。
ただし、大きくなるに連れて図形が大ざっぱに成るので、内側の
for ループでステップ i.step
を少しずつ増やしてみました。
描画色は、リスト colorList
に放り込んだ色を順番に取出しています。
Sample24
to radian2angle :radnum
output / * :radnum 180 pi
end
to msgn :num
output * -1 :num
end
to sample24 :amp
(local
"po.x "po.y
"t.x "t.y
)
penup
(for "t 0 16 [
make "t.x cos radian2angle * :t pi
make "t.y cos radian2angle * msgn :t pi
make "po.x (* :amp cos radian2angle + :t.x (/ * :t pi 4))
make "po.y (* :amp cos radian2angle - :t.y (/ * :t pi 8))
setxy sentence :po.x :po.y
pendown
] 0.025)
end
sample24 100
何でしょうこれ?コサインを更にコサイン?
昔BASIC言語のマニュアルにあった物を、Logoに移植してみました。
これも、リサージュ曲線の応用の一つですね。
Helicoid
to helicoid :amp :loop [:offset 0] 2
(local
"po.x1 "po.y1 "po.y2
"vwidth
)
name 30 "vwidth
make "po.y1 (- * :vwidth :loop (* :vwidth 0.5))
make "po.y2 (+ :po.y1 :vwidth)
penup
(for "i 0 (* 360 :loop) [
make "po.x1 (* :amp cos :i)
make "po.y1 (- :po.y1 1)
make "po.y2 (- :po.y2 1)
setxy sentence + :offset :po.x1 :po.y2
penup
setxy sentence :offset :po.y1
pendown
setxy sentence + :offset :po.x1 :po.y2
] 6)
end
![](../img/helicoid.gif)
helicoid 80 4
ヘリコイド曲線(つる巻き曲線)です。
立体的な渦巻きの事らしいです。:-)
ですから上から見た図形を、描いても判らないので横から見た図形です。
まるで螺線階段の様ですね。
そう言えば遺伝子DNAは、二重螺線構造ですね。
![](../img/bret.gif)
|