|
|
发表于 2007-5-10 13:06:00
|
显示全部楼层
Re: 椭圆坐标方程
我游戏中的代码片断,作用是生成一个包含椭圆上各点的数组。
Private Type EllipseXY
Px As Double
Py As Double
End Type
Private Ellipse_Array() As EllipseXY '椭圆矩阵
Public Function Ellipse_CreateArray(ByVal Ox As Long, ByVal Oy As Long, ByVal R As Long, ByVal Scale As Double, ByVal Angles As Double, Optional ByVal Steps As Double = 0.1) As Long
Dim X1, Y1 As Double
Dim Count As Long
For i = 0 To 6.283 Step Steps
Count = Count + 1
ReDim Preserve Ellipse_Array(Count)
Ellipse_Array(Count).Px = (R * Cos(i) * Cos(Angles) - R * Scale * Sin(i) * Sin(Angles)) + Ox
Ellipse_Array(Count).Py = (R * Cos(i) * Sin(Angles) + R * Scale * Sin(i) * Cos(Angles)) + Oy
Next i
End Function
'Ox,Oy 是屏幕上的位移坐标值, R 半径,Scale 长轴和短轴的比例, Angle 倾斜角度, Steps 点的密度,默认是0.1,即数组上限是6.283\0.1.
你可以调整各个参数看看不同的效果 |
|