AIちゃんとおともだち

唐突ですが、AIちゃん達との会話を投稿します。
Voilaさんの中はChatGPTちゃんです。

ChatGPTちゃんにゴスパー曲線の作り方を相談する(その22)

2023-05-02 17:05:39 | ChatGPTちゃん
Q
ゴスパー曲線が出来ました。下のリンクです。プチコン3号でプログラミングをしました。 https://blog.goo.ne.jp/happanogateway/e/a36126261a8ea00d67d5b685cf6fe4db
本物のゴスパー曲線と少し違います。 中心は同じなのですが、外側に行くと本物のゴスパー曲線と違うパターンになっています。 どう直せばいいでしょうか?
 
 
ChatGPT

現在のプログラムでは、曲線を描画するために、正六角形を再帰的に描画していますが、正確なゴスパー曲線を描画するためには、正六角形の代わりに正三角形を使用する必要があります。正三角形を使用すると、曲線が正しく描画されます。

また、曲線の回転方向を変更する必要があります。現在のプログラムでは、右方向に回転していますが、正確なゴスパー曲線では左方向に回転します。

以下は、修正したプログラムです。これで正確なゴスパー曲線が描画されるはずです。

 

 

SCREEN 1:W=191

DIM T(3)

T(0)=0
T(1)=60
T(2)=-60

X1=W/2+48
Y1=96
X2=W/2-48
Y2=96

GOSUB *LINE

X1=X2
Y1=Y2
X2=W/2
Y2=96+96*SQR(3)/2

GOSUB *LINE

X1=X2
Y1=Y2
X2=W/2-48
Y2=96

GOSUB *LINE

X1=X2
Y1=Y2
X2=W/2+48
Y2=96

GOSUB *LINE

WAIT

*LINE
IF X1=X2 THEN  GOTO *END
DX=X2-X1
DY=Y2-Y1
IF ABS(DX)>ABS(DY) THEN S=ABS(DX) ELSE S=ABS(DY)
FOR I=0 TO S
  X=X1+DX*I/S
  Y=Y1+DY*I/S
  COLOR 1
  PSET (X,Y)
NEXT I
RETURN

WAIT

*GOSPER
IF N=0 THEN RETURN

A=T(0)
B=T(1)
C=T(2)

GOSUB *GOSPER

A=T(2)
B=T(1)
C=T(0)

GOSUB *GOSPER

A=T(1)
B=T(0)
C=T(1)

GOSUB *GOSPER

B=T(2)
C=T(1)

GOSUB *GOSPER

B=T(1)
C=T(2)

GOSUB *GOSPER

A=T(1)
B=T(0)
C=T(1)

RETURN

*START
N=5

X1=W/2
Y1=96+96*SQR(3)/2
X2=W/2-96
Y2=96
X3=W/2+96
Y3=96

T(0)=0
T(1)=60
T(2)=-60

GOSUB *GOSPER

T(0)=60
T(1)=-60
T(2)=0

 

 

 

 Q

今ChatGPTさんのあげらたプログラムは、どの言語ですか?
 
 
 
 
ChatGPT

ChatGPTちゃんにゴスパー曲線の作り方を相談する(その21)

2023-05-02 10:12:22 | ChatGPTちゃん

前回のこの基本形、ちょっと形が違うネギね。同じように作ったのになぜなのか…。

「Gosper」画像検索で表示されたゴスパー曲線達と見比べたネギよね。マス目にしている六角形も表示して。そして分かったネギ!

ゴスパー曲線には向きがあるネギ!

そこで、亀の甲を並べるときの計算式をマイナスにしてみたネギよ。そうしたら…

おお!ゴスパー曲線の基本形に近いネギ。下の方のパターンが違っているけれど、すぐに直せるネギ。

直したのが↓ネギ。

基本形ができたネギ!

深度を深くして表示ネギ。

うーん、ちょっと違うネギね。

ゴスパー図の表示パターンと、再帰のときの指定がずれていたネギ。

再帰のときの指定をゴスパー図の表示パターンを合わせてみたネギ。

できてる?

ん~?

ここから先はどうしたらいいのかネギね…。検討がつかないネギ…。

ChatGPTちゃんに聞いて見るネギかな~。

 

 

 

なお、ゴスパー図のパターンの順番の条件と再帰のときの条件を抜くと下のようなエッシャーのような図が出来上がるネギ。