动态绘制圆的渐开线

内容:在屏幕上描点绘制圆的渐开线,曲线颜色为红色。此绘制曲线轨迹函数如下所示:x=a (cost+tsint) y=a (sint-ycost)

将一个圆轴固定在一个平面上,轴上缠线,拉紧一个线头,让该线绕圆轴运动且始终与圆轴相切,那么线上一个定点在该平面上的轨迹就是渐开线。
  直线在圆上纯滚动时,直线上一点k的轨迹称为该圆的渐开线,该圆称为渐开线的基圆,直线称为渐开线的发生线。 渐开线的形状仅取决于基圆的大小,基圆越小,渐开线越弯曲;基圆越大,渐开线越平直;基圆为无穷大时,渐开线为斜直线。渐开线方程为:
  x=r×cos(θ+α)+(θ+α)×r×sin(θ+α)
  y=r×sin(θ+α)-(θ+α)×r×cos(θ+α)
  z=0
  式中,r为基圆半径;θ为展角,其单位为弧度
  展角θ和压力角α之间的关系称为渐开线函数
  θ=inv(α)=tan(α)-α
  式中,inv为渐开线involute的缩写
  渐开线画法:
  已知圆的直径d,画渐开线的方法如图
  (1)将圆周分成若干等分(图中为12等分),将周长πd作相同等分;
  (2)过周长上各等分点作圆的切线;
  (3)在第一条切线上,自切点起量取周长的一个等分(πd/12)得点1;在第二条切线上,自切点起量取周长的两个等分(2xπd/12)得点2;依此类推得点3、4、……、12;
  (4)用曲线板光滑连接点1、2、3、……、12;即得圆的渐开线
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-22
你的公式错了
Const PI As Double = 3.14159265

Private Sub Form_Click()
'x=r(cost+tsint) y=r(sint-tcost)
Dim t As Double
Dim x As Double, y As Double, r As Double
r = 5
Cls
Scale (-400, 400)-(400, -400)
For t = 0 To 16 * PI Step PI / 360
x = r * (Cos(t) + t * Sin(t))
y = r * (Sin(t) - t * Cos(t))
PSet (x, y), vbRed
Next t
End Sub

Private Sub Form_Load()
AutoRedraw = True
End Sub本回答被提问者采纳
相似回答