我确信这是基本的三角函数,我打赌我多年前在学校报道,但我很难知道什么函数适用于现实世界的情况。无论如何,我没有尝试解释我需要帮助的内容,而是绘制了一个小图:
我知道p1,p2,r1和r2但是我不记得(或者知道如何搜索)如何计算出p3和p4是什么。
这个设置的基本应用是我有2个圆圈(红色和蓝色),我需要它们不断连接,因为我将它们拖到画布上。粉红色链接将通过它们的中心点连接它们,但我不希望线条穿透圆圈的圆周。
希望有道理吗?提前谢谢。
答案 0 :(得分:1)
您必须解决以下等式系统:
对于p3 - >
(X-p1x)/(p1x-p2x)=(Y-p1y)/(p1y-p2y)
(X-p1x)^2 + (Y-p1y)^2 = r1^2
对于p4,相同的是在第二个等式中将r1改为r2,将p1改为p4。
第一个等式是给出2个点的线的等式。 第二个等式是给定中心点和半径的圆的方程。
得到的X,Y值将是p3的值,然后是p4。
答案 1 :(得分:1)
我要说的有点长。我会让你编写自己的代码,但是,当然无法帮助你。
您知道点P1,P2和半径R1和R2。假设点P1和P2分别具有坐标(x1,y1)和(x2,y2)。
连接P1和P2的直线是直线,因此您可以使用公式m=(y2-y1)/(x2-x1)
计算直线的斜率。由于您知道斜率并知道两个坐标,因此可以计算截距c
并构造形式y=mx+c
的公式。
一旦行公式存在,您可以应用x的值并计算点P3的y,假设您具有半径R1,则说x3和y3。同样,计算P4的坐标。
答案 2 :(得分:1)
令d为p1(x1,y1)和p2(x2,y2)之间的距离
从而
d = sqrt((x1-x2)^ 2 +(y1-y2)^ 2)
现在点p3(x3,y3)以r1的比例划分p1和p2之间的直线:(d-r1)
因此
x3 =(r1 * x2 +(d-r1)* x1)/ d和
y3 =(r1 * y2 +(d-r1)* y1)/ d
类似于p4(x4,y4)
x4 =(r2 * x1 +(d-r2)* x2)/ d和
y4 =(r2 * y1 +(d-r2)* y2)/ d
答案 3 :(得分:1)