Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 圆:获取边界的最大(x,y)坐标_Javascript_Jquery_Html_Math - Fatal编程技术网

Javascript 圆:获取边界的最大(x,y)坐标

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

我有一个容器圆(红色),半径为140px。 使用Javascript,我在这个容器中添加了小圆圈。该圆的x坐标和y坐标是动态设置的

在某些情况下,会在容器外部绘制蓝色圆圈。我想重新计算x和y坐标,把这个圆放在容器的边界上

我所拥有的:

我想要的是:

我尝试了css/JQuery和SVG,测试了很多数学公式和复杂的手工解决方案

我尝试过的一些例子:

  • “切割”我的容器的几个区域,每个区域都有一个x或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。很抱歉我的疏忽。。。。我将其用于带有地理定位的移动应用程序。根据用户的位置计算小圆坐标。用户由容器的中心表示。圆总是在容器中绘制,但有时不是圆形。我试图强制它们的坐标,以便它们总是在容器中。