不,这纯粹是二维的。
谢谢你-我改变了代码,所以它现在可以工作了。
这就是我所拥有的。
- [size=2][color=#0000ff]Public Function [/color][/size][size=2]CalcAngle([/size][size=2][color=#0000ff]ByVal [/color][/size][size=2]ObjCurve [/size][size=2][color=#0000ff]As [/color][/size][size=2]AcadNetDbServices.Curve, [/size][size=2][color=#0000ff]ByVal [/color][/size][size=2]Dist [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]Double[/color][/size][size=2])
- [/size][size=2][color=#008000]
- [/color][/size][size=2][color=#0000ff]Dim [/color][/size][size=2]Radians [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]Double
- [/color][/size][size=2][color=#0000ff]Dim [/color][/size][size=2]Degrees [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]Double
- [/color][/size][size=2][color=#0000ff]Dim [/color][/size][size=2]Point1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]AcadNetGeometry.Point3d = ObjCurve.GetPointAtDist(Dist)
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]firstderiv [/size][size=2][color=#0000ff]As [/color][/size][size=2]AcadNetGeometry.Vector3d = ObjCurve.GetFirstDerivative(Point1)
- Radians = Math.Atan2([/size][size=2][color=#0000ff]Cdbl[/color][/size][size=2](firstderiv.Y) , [/size][size=2][color=#0000ff]Cdbl[/color][/size][size=2](firstderiv.X))
- Degrees = Radians * (180 / Math.PI)
- [/size][size=2][color=#008000]'If in positive quadrants then = 180 - abs.Degrees
- 'If in Negative quadrants then = Abs.Degrees - 180
- [/color][/size][size=2][color=#0000ff]If [/color][/size][size=2]Degrees < 0 [/size][size=2][color=#0000ff]Then
- [/color][/size][size=2]Degrees = (Math.Abs(Degrees)) + 180
- [/size][size=2][color=#0000ff]Else
- [/color][/size][size=2]Degrees = 180 - (Math.Abs(Degrees))
- [/size][size=2][color=#0000ff]End If
- [/color][/size][size=2]CalcAngle = Degrees
- [/size][size=2][color=#0000ff]End Function
- [/color][/size]
|