2016-09-22 3 views
1

이것은 아마도 극히 타원에 관한 내 어렴풋한 단어 question의 주석에 제기 된 질문에 대한 대답입니다.거북이로 떠오르는 타원을 그리기.

in Netlogo 다른 언어에서 이상하게 보일 수있는 방식으로 기하학적 모양을 그리는 것은 당연합니다. 예를 들어

ask turtle 1 [pendown 
       let d (pi * distance turtle 2)/360 
       repeat 360 [face turtle 2 rt 90 fd d] 
      ] 

거북이 1 내가 표준 원 공식 중 하나를 호출하지만 여전히 원을하지 않았다 거북이 2. 주위에 원 [360 곤]을 그릴 수에 채워지.

다른 하나의 거북이를 초점으로 사용하여 하나의 거북이가 타원형 (또는 수퍼 타원)을 그리는 것과 같은 동일한 토착어에 타원을 그릴 수 있습니까?

답변

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 ;; 

] 
] 

관련 문제