Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 关于创建圆弧周围长方体的算法的帮助_Algorithm_Geometry_Rectangles - Fatal编程技术网

Algorithm 关于创建圆弧周围长方体的算法的帮助

Algorithm 关于创建圆弧周围长方体的算法的帮助,algorithm,geometry,rectangles,Algorithm,Geometry,Rectangles,我正在寻找一些关于创建一个能够计算圆弧边界框的算法的帮助。通常,这将是一个简单的问题。但是,我需要将长方体的一条边作为连接圆弧起点和终点的线 我很难开发一种能够计算矩形的附加两点的算法 以下是我试图计算的内容: 这两个紫色点,我需要开发一个算法来确定这两个位置。绿点是可以作为输入的已知点。另外,我知道圆弧的半径和中心 我需要算法来处理AB线垂直、a+斜率和a-斜率的不同情况 我一直在考虑几个方向。例如,我知道通过点E的线平行于线AB。因为它是平行的,这意味着它们具有相同的斜率,从点A到紫色点的

我正在寻找一些关于创建一个能够计算圆弧边界框的算法的帮助。通常,这将是一个简单的问题。但是,我需要将长方体的一条边作为连接圆弧起点和终点的线

我很难开发一种能够计算矩形的附加两点的算法

以下是我试图计算的内容:

这两个紫色点,我需要开发一个算法来确定这两个位置。绿点是可以作为输入的已知点。另外,我知道圆弧的半径和中心

我需要算法来处理AB线垂直、a+斜率和a-斜率的不同情况

我一直在考虑几个方向。例如,我知道通过点E的线平行于线AB。因为它是平行的,这意味着它们具有相同的斜率,从点A到紫色点的线垂直于这条线。然后,我可以通过E和这个垂直线来考虑线的交点。

这种方法似乎很混乱,因为当线AB的斜率是无穷大和0时,我需要考虑这些情况。我想知道是否有一些算法可以自动解释(或者甚至不考虑坡度对线AB)

您声称知道点

A
B
C
D
E
,并且圆弧的支撑角振幅不超过180°(半圆)。
P1
P2
作为边界框的补充点-(在图纸中,
P1
A
上方的紫色点,
P2
B
上方的紫色点)

使用向量:
E-C=垂直于段AB'的向量,即从E中减去C;其大小等于距离EC

P1=A+(E-C)

P2=B+(E-C)

边框=矩形
A
P1
P2
B


如果需要更紧密的拟合,您可以将
向量(E-C)
替换为
向量(D-C)
,以将边界段
P1P2
D

相切,或者阅读有关矩阵的内容您知道哪些点?如何确定距离CE?这似乎是简单的解析几何。处理无限斜率是一个简单的
if
检查。绿色的点是已知值。点A、B、C、D和E。我不想详细说明如何知道点E,但基本上,点E是点D的偏移量。我计算了角度BCD,我知道角度BCE是相同的。我用一个圆的方程来计算点E的X点和Y点,因为点E在一个同心圆上。我确实认为这是一个简单的解析几何,但我觉得我遗漏了一些东西。它是什么类型的圆弧?如果A或B处的切线与AB形成钝角,则您描述的边界框类型不存在(除非该框可以延伸到A和B之外)。