gpt4 book ai didi

algorithm - 几何 - 两侧为凸面的两个圆围绕几何中心旋转

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:00 27 4
gpt4 key购买 nike

我想做一个凸面(由一些直线或圆弧组成)围绕它的几何中心(Cx,Cy)旋转。同时凸面两侧有两个圆(由半径给出:R 和左中心:(Lx,Cy),右中心:(Rx,Cy))。表示与几何(Cy) X 轴相同的圆心。

模型图片:

Figure 1

该算法旨在计算旋转theta(0到360度)时的LxRx,两个圆的凸面只有单独一个接触点。我怎样才能实现它?

假设我们可以通过给定的增量距离或围绕几何中心的增量 theta 得到凸离散化点。

最佳答案

为了提供旋转凸面和圆之间的联系,值得解析地定义凸面。

例如,如果直线段有参数方程

X = X0 + t * (X1-X0)
Y = Y0 + t * (Y1-Y0)

然后求解方程组

(X - Lx)^2 + (Y - Cy)^2 = R^2             //distance
(X - Lx) * (X1 - X0) + (Y - Cy) * (Y1 - Y0) = 0 //tangent perpendicularity to radius

对于未知数 t 和 Lx,检查 t 是否在 0..1 范围内。如果为真 - 圆圈接触此段,如果有效则为 Lx

若曲线段为解析曲线,则接触点的曲线法线应与半径共线。

对于半径为aR、圆心为ax的圆弧段,y相切条件为:

 (ax - Lx)^2 + (ay - Cy)^2 = (aR + R)^2

再次 - 需要检查切点是否在圆弧范围内

关于algorithm - 几何 - 两侧为凸面的两个圆围绕几何中心旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com