这是对我可能措辞不力的question关于超椭圆的评论中提出的问题的回答。
在Netlogo中,以其他语言看起来很奇怪的方式绘制几何形状是很自然的。ask turtle 1 [pendown
let d (pi * distance turtle 2) / 360
repeat 360 [face turtle 2 rt 90 fd d]
]
例如inscribes使得龟1在乌龟2周围画一个圆圈[360-gon]。我没有调用任何标准的圆形公式,但仍然得到一个圆圈。
是否有可能用同样的白话画一个椭圆,比如用一只乌龟画一个椭圆(或超椭圆)围绕另外两只乌龟用它们作为焦点?
答案 0 :(得分:2)
基本上要制作一个椭圆,你可以将海龟设置为焦点的加权平均值并更新每一步。它可以在一行中完成,但那将是一条丑陋的线。
globals [a b c]
to setup
ca
crt 1 [set heading 90 fd 10 pendown set C self]
crt 1 [setxy 5 10 set A self]
crt 1 [setxy 0 -10 set B self]
end
to go
repeat 5100 ;; ad hoc number
[
ask c
[
let Ax [xcor] of A - xcor
let Ay [ycor] of A - ycor
let Bx [xcor] of B - xcor
let By [ycor] of B - ycor
let da 1 / distance a
let db 1 / distance B
set heading 90 + atan ((ax * da + bx * dB) / (da + db))
((ay * da + by * db) / (da + db))
FD .0125 ;;
]
]
端