4
我目前卡住了试图计算dreamcatcher及其内圈。基本上你有一个给定半径为x
的外部圆,你需要计算它的周长。那么你将不得不计算一个魔法值,即每个弓(在图像中的数字)应该是多宽,它应该导致弓不会在起点完成,但与第一个弓重叠约半个弓。python:计算dreamcatcher的步骤
这里是我试过至今:
import math
# in cm
rad = 5.0
perimeter = round(rad * 2.0 * math.pi, 2)
print "perimeter == %f" % perimeter
#bow = "?"
incValue = 0.00001
start = incValue
end = perimeter
while start < end/10:
tmp = start * 10
while tmp < perimeter:
tmp += start
if tmp - perimeter == start/2:
print "bow could be %s" % str(tmp)
start += incValue
print "done"
,但我没能找到一个适合该限制值。
我认为'如果tmp - perimeter == start/2'有问题,因为浮点数很少比较相等。你可能需要实现某种'very_nearly_equals(a,b)',当'abs(a-b)
Kevin
你能证明你的意思是宽广的每一个弓吗? – Kasramvd
@Kasra是否足够说“每个弓的宽度”等于(例如在图片中)Erste Umschlingung和2的距离? – Zaiborg