在上周,我试图计算三点之间的角度 -
首先我需要得分=容易
而不是计算角度(不相对)=很容易
现在我需要获得相对于图形的角度 - 问题是我不知道如何(我确信这也很容易)。
PI = 3.141592654
A(2004,227)
B(2005,18)
C(2006,25)
这是计算角度的函数/公式>
arctan((Xb - Xa)/(Ya - Yb)) * (180/PI) + arctan((Xc - Xb)/(Yc - Yb)) * (180/PI)
我需要将哪些内容添加到公式中,以便它相对于图表? (我也想要解释)
这是图表:
非常感谢!
答案 0 :(得分:2)
编辑:以下是我的sub的完整代码来计算它。
Public Sub Question()
Dim Pi As Double
Pi = 3.141592654
Dim myChart As ChartObject
For Each myChart In ActiveSheet.ChartObjects
Dim xLength As Double
Dim yLength As Double
xLength = myChart.Chart.Axes(1).MaximumScale - myChart.Chart.Axes(1).MinimumScale
yLength = myChart.Chart.Axes(2).MaximumScale - myChart.Chart.Axes(2).MinimumScale
xLength = xLength / myChart.Chart.PlotArea.Width
yLength = yLength / myChart.Chart.PlotArea.Height
Dim goodScale As Double
goodScale = xLength / yLength
Dim v1x As Double
Dim v1y As Double
Dim v2x As Double
Dim v2y As Double
Dim Angle As Double
v1x = 2005 - 2004
v1y = 18 - 227
v2x = 2006 - 2005
v2y = 25 - 18
v1y = v1y * goodScale
v2y = v2y * goodScale
Angle = (Atn(v2x / v2y) - Atn(v1x / v1y)) * (180 / Pi)
Next
End Sub
你会注意到我对子中的点进行了硬编码,但这只是为了获得一个小的自给自足的代码。