Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript选择圆上的点_Javascript_Html - Fatal编程技术网

使用JavaScript选择圆上的点

使用JavaScript选择圆上的点,javascript,html,Javascript,Html,有没有一种方法可以使用JavaScript在车轮图像上选择一个点,并从0-360保存该点?如果知道圆的半径,可以使用三角法查找圆上的点: var x = Math.cos(pointAngleInRadians) * radius; var y = Math.sin(pointAngleInRadians) * radius; 如果圆以点为中心,例如(10,20),则需要将这些值添加到x和y,以获得准确的坐标 更新 本文解释了如何在用户单击图像时调用函数,并让该函数计算出坐标 以下是一些高级

有没有一种方法可以使用JavaScript在车轮图像上选择一个点,并从0-360保存该点?

如果知道圆的半径,可以使用三角法查找圆上的点:

var x = Math.cos(pointAngleInRadians) * radius;
var y = Math.sin(pointAngleInRadians) * radius;
如果圆以点为中心,例如
(10,20)
,则需要将这些值添加到
x
y
,以获得准确的坐标


更新

本文解释了如何在用户单击图像时调用函数,并让该函数计算出坐标

以下是一些高级注释,说明如何使用此选项计算他们单击的角度(0-360度):

  • 知道每个圆的圆心坐标和用户单击的坐标后,可以使用点之间的距离计算半径,计算方法如下:

  • 然后可以使用上面的三角方程来计算每个圆上点的角度

  • 假设每个圆都有一个宽度,可以计算每个轮胎外缘和内缘具有相同角度/半径的点的坐标

  • 将内/外边缘值与用户单击的点进行比较,以查看用户是否在轮胎边界内单击。对于x和y,圆的每半部分都需要两种情况-例如,以下仅适用于180度
    xInner=xout

  • 在上一步之后,如果该点位于其中一个轮胎上,则具有角度。在存储之前,您可能需要将其从弧度转换为度:

以度为单位的角度=以弧度为单位的角度*180/Pi


通过反复试验(!)发现了一条可能存在数百年的绘制椭圆的捷径

通过知道圆心[x,y]和半径[x,y](通常来自两次鼠标点击),基本上通过乘以
1.41
可以得到圆周长上最近的点

出于某些iframe原因,这在下面嵌入的代码段上表现得并不好,但在其他方面没有问题

constpx=150//中心X
常数pY=55//中心Y
让sX,sY
设n=document.createElements(“http://www.w3.org/2000/svg“,‘椭圆’)
svg.addEventListener('mousemove',函数(e){
sX=e.pageX
sY=e.pageY
n、 setAttribute(“cx”,pX)
n、 setAttribute(“cy”,pY)
设rx=Math.hypot(pX-sX,pY-sY)*Math.SQRT2
设ry=Math.abs((pY-sY))
n、 设置属性(“rx”,rx)
n、 setAttribute(“ry”,ry)
svg.appendChild(n)
})

我正在用油漆画一幅图像,上面有两个轮胎,我想用鼠标点击任何轮胎上的一个点来存储它point@user570098-有关高级算法,请参阅我的更新。这有什么意义吗?:)