思维建筑经历了六年的波折,而今终于可以安安静静的生活、写博、谈情、说爱。

vb 动态太极 great

生活随笔 xipwh 1076℃ 0评论
Option Explicit
Dim PI As Double ‘π值
Dim CenterPointX As Long ‘两个圆围绕旋转的圆心X
Dim CenterPointY As Long ‘两个圆围绕旋转的圆心Y
Dim TempX1 As Long ‘第一个圆的圆心X
Dim TempY1 As Long ‘第一个圆的圆心Y
Dim TempX2 As Long ‘第二个圆的圆心X
Dim TempY2 As Long ‘第二个圆的圆心Y
Dim Radius As Long ‘两个圆的半径,因为两个圆等大,所以就定义了一个变量
Dim Angle As Double ‘旋转的角度
Private Sub Form_Load()
CenterPointX = 4000 ‘设置起始旋转点X
CenterPointY = 4000 ‘设置起始旋转点Y
Radius = 1000 ‘半径为1000
Angle = 0 ‘起始旋转角为0

TempX1 = CenterPointX ‘第一个圆的起始位置X
TempY1 = 4000 – Radius ‘第一个圆的起始位置Y

TempX2 = CenterPointX ‘第二个圆的起始位置X
TempY2 = 4000 + Radius ‘第二个圆的起始位置Y

PI = 4 * Atn(1) ‘给∏赋值,这里让机器计算出比较标准的值,3.1415926…

‘下边初始化计时器
Timer1.Interval = 50
Timer1.Enabled = True

End Sub
‘下边是计时器过程
Private Sub Timer1_Timer()
Me.FillStyle = 0 ‘设置窗体的填充模式,你可以改为别的值试下效果
Me.FillColor = vbBlack ‘设置窗体的填充颜色,第一个圆为黑色
Me.ForeColor = vbBlack ‘设置窗体的线条颜色,也为黑色
Me.Circle (TempX1, TempY1), Radius ‘这里开始画第一个圆,Circle函数的参数都是什么意思你明白吧?~
‘下边画第一个阴阳鱼的”鱼眼”
Me.FillColor = vbWhite ‘因为第一个圆是黑色,所以”眼”画为白色
Me.ForeColor = vbWhite ‘见上边解释
Me.Circle (TempX1, TempY1), Radius / 3 ‘画一个稍小的圆

‘同样,下边画第二个圆,白色
Me.FillColor = vbWhite
Me.ForeColor = vbWhite
Me.Circle (TempX2, TempY2), Radius
‘黑”鱼眼”
Me.FillColor = vbBlack
Me.ForeColor = vbBlack
Me.Circle (TempX2, TempY2), Radius / 3

‘—到这里第一次绘制完成了—
‘—下边为下一次绘制做下准备-
Angle = Angle + 1 ‘两个圆围绕旋转的角度加1
If Angle > 360 Then ‘大于360时,说明转了一整圈了,所以从0开始重新旋转
Angle = 0
End If
‘下边根据三角函数计算下一次两个圆的圆心位置,自己画个图看下吧~我懒,就不画了,^^
TempX1 = CenterPointX + Sin(Angle * PI / 180) * Radius
TempY1 = CenterPointY – Cos(Angle * PI / 180) * Radius
‘第二个圆可以懒省事,不通过计算获取其圆心位置,因为其和第一个圆与围绕心是对称的,可以通过坐标转换来获取圆心位置
TempX2 = CenterPointX – (TempX1 – CenterPointX)
TempY2 = CenterPointY + (CenterPointY – TempY1)
‘—到这里,一次绘制就完成了—
End Sub

转载请注明:思维建筑 » vb 动态太极 great

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址