実現したいこと
フラクタルツリーを描こうと思っています。
発生している問題
for文の途中で、ループを抜けてしまうのかlineが10本分正しく描画されていません。以下の画像のように2本分で止まってしまいます。
どのようにしたらよろしいのでしょうか。
該当のソースコード
import numpy as np import cv2 #黒背景 img = np.zeros((600,600,3), np.uint8) for num in range(10): if num == 0: ThisRadious = 100 ThisTheta = 0 ThisThetaRad = np.radians(ThisTheta) ThisBeginX = 100 ThisBeginY = 100 ThisEndX = ThisBeginX + np.sin(ThisThetaRad) * ThisRadious ThisEndY = ThisBeginY + np.cos(ThisThetaRad) * ThisRadious cv2.line(img, (int(ThisBeginX), int(ThisBeginY)), (int(ThisEndX), int(ThisEndY)),(255,255,255),2) else: ThisRadious = ThisRadious * 0.67 ThisTheta = ThisTheta + 10 if ThisTheta >= 360: ThisTheta = ThisTheta - 360 ThisThetaRad = np.radians(ThisTheta) ThisBeginX = ThisEndX ThisBeginY = ThisEndY ThisEndX = ThisBeginX + np.sin(ThisThetaRad) * ThisRadious ThisEndY = ThisBeginY + np.sin(ThisThetaRad) * ThisRadious print(int(ThisBeginX)) print(int(ThisBeginY)) cv2.line(img, (int(ThisBeginX), int(ThisBeginY)), (int(ThisEndX), int(ThisEndY)),(255,255,255),2) cv2.imshow('forest of objects6', img) cv2.waitKey(0) cv2.imshowAllWindows()
補足情報(FW/ツールのバージョンなど)
Python3
macOS
ThisEndY = ThisBeginY + np.sin(ThisThetaRad) * ThisRadious
のsinが間違っているのでは。
lineは10本描かれているようです。
https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-11/7986720c-c69e-4443-b591-3f4e53b0fb5c.png
ありがとうございます。
うっかりしておりました....訂正したところ、lineを10本書くことができました。
ご丁寧に返信してくださり感謝いたします。
また何かありましたら、どうぞ宜しくお願いいたします。
解決したようで何よりです。
自己解決で質問をCloseしてくださいね。
ご返信ありがとうございます。
質問をCloseいたしました。
回答1件
あなたの回答
tips
プレビュー