游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1761|回复: 3

曲线问题

[复制链接]

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2006-3-28 09:42:00 | 显示全部楼层 |阅读模式
我在做一个导弹的飞行模拟,现在我有起点和终点两个坐标(X,Y,Z),我
想先用一条简单的抛物线来模拟导弹的轨迹,但是这条线的曲线方程我却没法得到,
我知道通过两个点的抛物线有无数条,但是一条对我来说就够了,谁能帮帮忙?

24

主题

256

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2006-3-29 08:29:00 | 显示全部楼层

Re:曲线问题

完全是中学时的物理问题。

有三种不同的情况:目标与发射点等高,目标高于抛射点,目标低于抛射点。

建议看一下这本书《游戏开发物理学》中的抛体

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2006-4-28 17:17:00 | 显示全部楼层

Re:曲线问题

用Bezier曲线阿
opengl中自带了Bezier曲线的绘制函数
先定义控制点比如GLfloat ctrlpoints[4][3] = {

    { -4.0, -4.0, 0.0}, { -2.0, 4.0, 0.0},

    {2.0, -4.0, 0.0}, {4.0, 4.0, 0.0}};

然后调用   glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);//定义Bezier曲线
glEnable(GL_MAP1_VERTEX_3);//启动曲线
void glMapGrid1{fd}(GLint n,TYPE u1,TYPE u2);
//定义一个网格,从u1到u2分为n步,它们是等间隔的。实际上,这个函数定义的是参
//数空间网格。一般来说u1=0,u2=1;
void glEvalMesh1(GLenum mode,GLint p1,GLint p2);
//计算并绘制坐标点。参数mode可以是GL_POINT或GL_LINE,即沿曲线绘制点或沿曲线
//绘制相连的线段。

只要设置好控制点就好了,一般来说三个控制点就可以绘制一个二次的抛物线了

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2006-4-28 17:18:00 | 显示全部楼层

Re:曲线问题

控制点第一个设为起点,最后一个设为终点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 08:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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