Math 我有一个飞镖板。如何为不同的部分分配点?

Math 我有一个飞镖板。如何为不同的部分分配点?,math,geometry,Math,Geometry,请不要只是发布我问题的解决方案。对我来说,这一切都是关于理解如何做到这一点,并能够向我自己和其他人解释这一点和那一点是如何让一切工作的 我有一个用乌龟制作的飞镖板。如果有人真的想看,我可以把它贴出来 现在,我需要创建一个函数,在电路板上创建一个随机点,然后合并该点的点值。随机点很简单。但是有没有一种方法,我可以给一个区域分配正确的值,而不必逐个命名每个坐标?您需要的是一个反向变换,一个给定x,y坐标的变换可以识别它所属的区域 处理这个问题的最好办法是从坐标系的角度来思考。省道板的面积由其角度和半

请不要只是发布我问题的解决方案。对我来说,这一切都是关于理解如何做到这一点,并能够向我自己和其他人解释这一点和那一点是如何让一切工作的

我有一个用乌龟制作的飞镖板。如果有人真的想看,我可以把它贴出来


现在,我需要创建一个函数,在电路板上创建一个随机点,然后合并该点的点值。随机点很简单。但是有没有一种方法,我可以给一个区域分配正确的值,而不必逐个命名每个坐标?

您需要的是一个反向变换,一个给定x,y坐标的变换可以识别它所属的区域

处理这个问题的最好办法是从坐标系的角度来思考。省道板的面积由其角度和半径指定。你必须将你的x,y坐标转换成一个角度和半径,然后确定它所属的区域将很简单


确定角度最好使用
arctan2
函数,该函数可以直接将x、y偏移转换为角度。半径是一个简单的
sqrt(x**2+y**2)
一旦你从x,y中减去中心点。

假设你的省道板位于
(x0,y0)
,你的省道位于
(x,y)
。您需要将省道转换为
(φ,r)

然后找出
r
使你的省道位于中心、内环、中环还是外圈,以及你的
phi
位于圆圈的哪个部分。

好的ol'

让点(x1,y1)成为构造器使用的省道板的中心。让(x2,y2)成为你在棋盘上找到的随机点

使用此公式计算距离中心的距离d。然后你只需要几个if语句

if 0 <= d || d <= 2:
    # area 0
elif d < 2 || 4 <= d:
    # area 1
elif d < 4 || 6 <= d:
    # area 2

如果0,您可以选择一个介于[0,360]和[0,radius)之间的随机数,然后将其用作与原点的角度和偏移。
if 0 <= d || d <= 2:
    # area 0
elif d < 2 || 4 <= d:
    # area 1
elif d < 4 || 6 <= d:
    # area 2