游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7184|回复: 19

椭圆坐标方程

[复制链接]

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
发表于 2007-5-10 11:19:00 | 显示全部楼层 |阅读模式
我需要一个倾斜的椭圆的坐标集合.
游戏中 有一个目标, 沿着这个轨道行进.
轨道的形状是椭圆型的,  椭圆是倾斜的.
我上百度找了好久了, 找不到相关的公式,向大家求教.

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-5-10 11:50:00 | 显示全部楼层

Re:椭圆坐标方程

假设你的椭圆倾斜了角度为theta.
那么你需要倾斜-theta给转正。
P1 = P * Mt(-theta)

把P1 代入椭圆公式 。 基本就是了。

如果椭圆不在中心。考虑一下偏移。 

2

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 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.
你可以调整各个参数看看不同的效果

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
 楼主| 发表于 2007-5-10 13:35:00 | 显示全部楼层

Re:椭圆坐标方程

  太感谢了, 要的就是这种的!

2

主题

45

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2007-5-10 13:58:00 | 显示全部楼层

Re: 椭圆坐标方程

不过有个缺点,貌似不能很平均的分布,谁有更好的算法可以讨论一下。看下面图片例子。
sf_2007510135736.jpg

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-5-10 14:15:00 | 显示全部楼层

Re:椭圆坐标方程

要恒线速度的?

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-5-10 14:22:00 | 显示全部楼层

Re:椭圆坐标方程

受教了,支持!!!

88

主题

1125

帖子

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
 楼主| 发表于 2007-5-10 15:02:00 | 显示全部楼层

Re:椭圆坐标方程

恩, 要均匀分布的

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-5-10 15:11:00 | 显示全部楼层

Re: 椭圆坐标方程

http://blog.csdn.net/Nhsoft/archive/2007/05/10/1603144.aspx


sf_200751015118.png

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-5-10 15:12:00 | 显示全部楼层

Re:椭圆坐标方程

这个应该能满足你的需求。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 11:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表