Javascript 圆:获取边界的最大(x,y)坐标
我有一个容器圆(红色),半径为140px。 使用Javascript,我在这个容器中添加了小圆圈。该圆的x坐标和y坐标是动态设置的 在某些情况下,会在容器外部绘制蓝色圆圈。我想重新计算x和y坐标,把这个圆放在容器的边界上 我所拥有的: 我想要的是: 我尝试了css/JQuery和SVG,测试了很多数学公式和复杂的手工解决方案 我尝试过的一些例子:Javascript 圆:获取边界的最大(x,y)坐标,javascript,jquery,html,math,Javascript,Jquery,Html,Math,我有一个容器圆(红色),半径为140px。 使用Javascript,我在这个容器中添加了小圆圈。该圆的x坐标和y坐标是动态设置的 在某些情况下,会在容器外部绘制蓝色圆圈。我想重新计算x和y坐标,把这个圆放在容器的边界上 我所拥有的: 我想要的是: 我尝试了css/JQuery和SVG,测试了很多数学公式和复杂的手工解决方案 我尝试过的一些例子: “切割”我的容器的几个区域,每个区域都有一个x或y最大值 之后,我写了很多条件,比如: if (y >= 70 && y
if (y >= 70 && y <= 210 && x >= 280) {
x = 250;
}
如果(y>=70&&y=280){
x=250;
}
不太实际
在这里,我发现了这个代码,它在我的容器周围画了一圈
var item = 5;
for(var i =0; i<items; i++){
var x = 140 + 140*Math.cos(2*Math.PI*i/items);
var y = 140 + 140*Math.sin(2*Math.PI*i/items);
}
var项=5;
对于(var i=0;i假设大圆有圆心(X,Y)
和半径R
(你说的是140px),假设小圆有半径R
,你希望小圆位于大圆边界上的角度theta
(在你的图片中,它看起来像-70度).小圆中心的坐标为:
( (R-r)cos(theta)+X, (R-r)sin(theta)+Y )
给出圆坐标的公式(如果我们假设其miple位于x=0
和y=0
)是x^2+y^2=140^2
如果有半径为r的蓝色圆,那么这些蓝色圆的中心将位于x^2+y^2=(140-r)^2
现在每个x都很容易找到y坐标
y1=sqrt((140-r)^2-x^2)
及
y2=-sqrt((140-r)^2-x^2)
考虑值的偏移(红色圆圈中心的坐标).你能发布相关代码吗?看看使用的上下文是什么?有人点击添加子圆吗?它们是从数据源绘制的吗?等等。如果你可以访问小圆应该在哪里的极坐标,你应该能够完全在CSS中进行定位,而不必使用JS。很抱歉我的疏忽。。。。我将其用于带有地理定位的移动应用程序。根据用户的位置计算小圆坐标。用户由容器的中心表示。圆总是在容器中绘制,但有时不是圆形。我试图强制它们的坐标,以便它们总是在容器中。