如何保持两点在半圆外线上的距离不变
How can I maintain the same distance between two points over the outer line of the semi-circle?
我试图保持两个圆(绿色)之间相同的距离。
这里的代码:Html:<div id="red" class="s">
<div id="svg-red">
<div id="r-c-1" class="r-c">a</div>
<div id="r-c-2" class="r-c">b</div>
<div id="r-c-3" class="r-c">c</div>
<div id="r-c-4" class="r-c">d</div> </div>
</div>
<div id="green" class="s"></div>
Css: #red,#green,#blue{
width : 100%;
height : 900px;
position : relative;
}
#red{
background : red;
position:relative;
}
#green{
background : green;
}
.r-c{
width: 100px;
height: 100px;
background: purple;
color: white;
border-radius: 50px;
line-height: 100px;
text-align: center;
position: absolute;
bottom: calc(50% - 50px);
left: calc(50% - 50px);
}
#svg-red{
width: 600px;
height: 600px;
border-radius: 300px;
bottom: -300px;
left: calc(50% - 300px);
background: yellow;
position: absolute;
}
JS:
window.onload = function(){
var a = 36;
$(".r-c").each(function(index,data){
var b = a + a * index;
var x = 300 * Math.cos(b*Math.PI/180);
var y = 300 * Math.sin(b*Math.PI/180);
$(data).css("transform","translate("+x+"px,"+-y+"px)");
});
}
在上面的例子中,a-b、b-c、c-d之间的距离是相等的,但是起始点到a和d到最后一个点的距离是不等的。我想保持点之间的距离相同,通过半圆的外线
所以你有一个大半径R(=300)和磁盘半径R(=50)。每个小圆盘在第一近似中占有
的角截面。phi = (2*r)/R
在大圆上。如果你想在圆上放置n(=4)个小圆盘,那么在圆与圆之间有n+1(=5)个相等角度的空间。因此
Pi = n*phi + (n+1)*psi
或
psi = (Pi - n*phi)/(n+1)
小圆盘的中心需要有
psi+phi/2+k*(phi+psi)
这可能是经过这种精心的适应后,光学印象是外部节段现在太短了,这是由于没有第二个胖端点造成的。
记住,你在设置(x,y)
,但你是基于角度,当你需要基于弧度的角度。这就是你想要的:
window.onload = function() {
var radius = 300;
var $rcs = $(".r-c");
var numAngles = $rcs.length + 1;
var radians = Math.PI / numAngles;
$rcs.each(function(index,data) {
var polarCoords = (index + 1) * radians;
var x = radius * Math.cos(polarCoords);
var y = radius * Math.sin(polarCoords);
$(data).css(
"transform",
"translate("+x+"px,"+-y+"px)"
);
});
}
这将根据您拥有的.r-c
元素的数量以从0 - (pi/2)等距角度显示每个元素。
注意:看起来第一个元素和最后一个元素不是等距的,但这是一种错觉。每个紫色圆的圆心与相邻圆的距离相等,距离= 0;
相关文章:
- 为什么获胜'这个半圆长不大
- 计算php或js中的距离
- 使用谷歌地图api计算距离并将其设置在表格中<td>
- 如何在谷歌地图api v3中获得无公里驾驶距离
- 铯JS-两点之间的距离
- 地理位置和计算从当前纬度/液化天然气到另一纬度/液化石油气的距离
- cloudSearch:范围从0到某个值之间的距离
- 计算数据点阵列与平均值的最大距离,并返回相关数据点
- 半圆滑动滚动
- 远距离变换元素的宽度/高度(以像素为单位)
- 将谷歌地图制作成一定的距离(米)
- 如何获取所有旅行模式的距离和持续时间,例如驾驶,公交,骑自行车,在我的页面中步行以及将其存储在数据库中
- 无法与光线投射器保持距离
- 矩阵,距离,JavaScript
- 查找图像上两点之间的距离,即使缩放图像也是如此
- 谷歌距离矩阵 API 没有输出
- 查找与通过两次调用地理编码创建的两个 latlng 对象的距离
- 在不使用 CSS 的情况下,将元素与浏览器屏幕顶部保持设定的距离
- 在Javascript中找到距离半圆中心n%的点
- 如何保持两点在半圆外线上的距离不变