- A+
所属分类:vb.net
如何计算由两点构成的直线角度,一般测量角度需要两条直线,也就是说求一条直线的角度,必须做参考线,比如默认卡尔迪坐标的X轴或者Y轴作为角度的参考线。
举例 求点A,点B的角度
公式;
X轴=AX-BX //AX是A点坐标X值,BX是B点坐标X值,
B轴=AY-BY
求三角形的斜边长
斜边长=X轴 / √X轴*X轴+ B轴+B轴
求弧度= Acos(斜边长) //反函数
角度=180 / (π / 求弧度)
在判断一下点在那个象限即可
用VB.NET 代码写 例子
自定义一个求两点的角度的函数
头部引入Imports System.Math '三角函数
Function angle_radian(ByVal PT1 As Point, ByVal PT2 As Point)
Dim X, Y, H, CO, HD, ALE As Single
'两点的x、y值
X = PT2.X - PT1.X
Y = PT2.Y - PT1.Y
H = Sqrt(Pow(X, 2) + Pow(Y, 2))
'斜边长度
CO = X / H ' 从X轴开始计算角度
HD = Acos(CO)
'求出弧度
ALE = 180 / (PI / HD)
'用弧度转换角度
If Y < 0 Then
ALE = -ALE
ElseIf (Y = 0) Or (X < 0)
ALE = 180
End If
Return ALE
End Function
复制
在调用测试一下
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim point1 As New Point(10, 25) 'X10,Y25
Dim point2 As New Point(55, 50) 'X55 Y50
RichTextBox2.Text = angle_radian(point1, point2)
End Sub
复制
如要求两条直线的夹角,分别先求出两条直线的角度。在两个相减,不就是这两条线段的夹角吗?