我正在沿着圆形路径为iOS应用程序绘制正方形。然而,在沿圆的某些点处,正方形开始离开圆周。我如何确保方块留在里面?
这是我制作的插图。绿色方块表示我需要正方形实际所在的位置。红色方块是实际出现的位置,给出每个方块左上角的以下值:
x = origin.x + radius * cos(DEGREES_TO_RADIANS(angle));
y = origin.y + radius * sin(DEGREES_TO_RADIANS(angle));
原点是指圆的中心。我有一个循环,从1到360度的每个角度重复这个。
编辑:我改变了我的设计,将方块的中心沿着圆形路径而不是左上角定位。答案 0 :(得分:1)
为什么不沿着较大圆圈内的较小圆圈绘制正方形的中心?
您可以通过数学计算确切确定半径必须确保精确匹配,但您也可以快速尝试和错误。
这样做可以确保您的对象最终也会在实际的圆圈中布局,如果您只是确保每个正方形的一个且只有一个角落在较大的边界圆上,那就不是这种情况了。创建一个略呈八角形的形状而不是圆形)
答案 1 :(得分:1)
答案 2 :(得分:0)
选项1)你总能找到圆的直径然后使用毕达哥拉斯定理,你可以创建一个完全适合圆圈的正方形。然后你可以循环通过刚刚在圆圈中制作的正方形来创建更小的正方形,但我怀疑这是你的目标。
选项2)找出正方形的一条对角线长度的一半,并在第一个环内创建一个环。然后沿着内部路径在关键点(如30度或15度等)放置正方形。例如:http://i.imgur.com/1XYhoQ0.png 如您所见,较小的(内部)圆位于每个绿色正方形的中心,这确保了每个正方形的角都接触较大(外部)的圆。显然,我用廉价制作的油漆图片并不完美,但从数学上讲它会起作用。