我有三个已知的梯形梯形。所以我需要创建我所拥有的长度,宽度和角度的第四个坐标。您可以将三角形作为ADC从梯形假设这个问题。该模型的预期不同。余弦定律给出了角度,但它应该应用于模型的局部坐标。右侧我显示箭头指向我正在得到的错误对象。即使我旋转对象或翻转它,坐标也不应该出错。
newWidth2是AB。 newLength是AD。需要从角度为D的A,D创建C点.Math.Pow是"对于"的功率。 2是它的正方形(对于谁不能理解这种表示法)。
假设我没有C的坐标。我只知道A,D坐标。我知道AD,Width2和Width1的长度。我可以从C的初始坐标获得角度ADC,其中当我改变DC的Width2时,C的坐标将变化。因此C的坐标将基于AD的长度,角度D等。最后,如果整个物体以任何角度旋转,我需要的是C的坐标。
newWidth2是AB。 newLength是AD。 需要从角度A或角度D的A,D创建点C. Math.Pow是"的力量" 2是它的正方形(对于谁不能理解这种表示法)。
//Initially I will have Coordinates for C but later I should remove them and create from the model width and heights. So I can't take input as C Coordinates of (X3,Y3) which I already have.
//distance formula
newWidth2 = Math.Sqrt(Math.Pow(CoordX3 - CoordX5, 2) + Math.Pow(CoordY3 - CoordY5, 2));
//from the formula -> b2 = a2 + c2 - 2acCos(B)
diagangle = Math.Acos((Math.Pow(newWidth2, 2) - Math.Pow(newdiagonal, 2) - Math.Pow(newLength, 2)) / (-2 * (newdiagonal) * (newLength)) );
//I am getting this C coordinates as wrong.
//for getting C (third coordinates)
xcoord3 = CoordX5 + (newWidth2 * Math.Cos(diagangle));
ycoord3 = CoordY5 + (newWidth2 * Math.Sin(diagangle));
//sample values of one model
Width1 36
Width2 24
Length 88.0783
A
CoordX1 43.944
CoordY1 409.2514
B
CoordX2 46.9337
CoordY2 373.3758
C
CoordX3 133.7111
CoordY3 392.6488
D
CoordX4 131.718
CoordY4 416.5659
答案 0 :(得分:1)
目前尚不清楚究竟知道什么以及将要发现什么。我假设您知道A
,B
,C
和长度AB
= width1
和CD
= width2
的坐标,需要找到D
的坐标。
我认为如果将此问题视为向量问题而不是三角函数问题,则此问题更容易解决。如果您查看向量BA
和CD
,您可能会看到它们是共线的|BA|
= width1
而|CD|
= width2
。这意味着向量CD
= width2/width1 * BA
。不是你可以通过以下方式轻松计算D
的坐标。
BA
CD
= width2/width1 * BA
D
= C + CD