Public Module BezierHelper
''' <summary>
''' 获得二次贝塞尔曲线在某个时刻的位置
''' B(t) = PA(1-t)^2+ 2PBt(1-t) + PCt^2
''' </summary>
''' <param name="PA">起始点</param>
''' <param name="bs">二次贝塞尔曲线</param>
''' <param name="t">时间t 0~1</param>
Public Function GetPosition(PA As Point, bs As QuadraticBezierSegment, t As Single) As Point
Dim pr As Point
pr.X = PA.X * (1 - t) ^ 2 + 2 * bs.Point1.X * t * (1 - t) + bs.Point2.X * t ^ 2
pr.Y = PA.Y * (1 - t) ^ 2 + 2 * bs.Point1.Y * t * (1 - t) + bs.Point2.Y * t ^ 2
Return pr
End Function
''' <summary>
''' 获得二次贝塞尔曲线在某个时刻的位置
''' B(t) = PA(1-t)^2+ 2PBt(1-t) + PCt^2
''' </summary>
''' <param name="PA">起始点</param>
''' <param name="bs">二次贝塞尔曲线</param>
''' <param name="t">时间t 0~1</param>
Public Function GetPosition(PA As Point, bs As QuadraticBezierSegment, t As Single) As Point
Dim pr As Point
pr.X = PA.X * (1 - t) ^ 2 + 2 * bs.Point1.X * t * (1 - t) + bs.Point2.X * t ^ 2
pr.Y = PA.Y * (1 - t) ^ 2 + 2 * bs.Point1.Y * t * (1 - t) + bs.Point2.Y * t ^ 2
Return pr
End Function
''' <summary>
''' 获得二次贝塞尔曲线在某个时刻的切线方向
&n

这个模块提供了一组函数,用于计算二次和三次贝塞尔曲线在特定时间点的位置及其切线方向。GetPosition函数返回曲线上的点,而GetTangentAngle函数则计算并返回对应点的切线角度。
7458

被折叠的 条评论
为什么被折叠?



