设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3858|回复: 12
打印 上一主题 下一主题

[已经过期] 这算法是哪里错了……

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
177 小时
注册时间
2011-7-3
帖子
235
跳转到指定楼层
1
发表于 2013-7-28 22:29:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 TheRebirth 于 2013-7-30 18:36 编辑

关键源码如下:(只求各位别光看着就晕过去了就行了)

void CylinderRender(float x1,float x2,float y1,float y2,float z1,float z2,float distance1,float distance2,
                                        float xscale1=1.0,float xscale2=1.0,float yscale1=1.0,float yscale2=1.0,
                                        int stockings=16,float xangle=0.0,float yangle=0.0,float zangle=0.0)
{
        glRotatef(xangle,1.0f,0.0f,0.0f);
        glRotatef(yangle,0.0f,1.0f,0.0f);
        glRotatef(zangle,0.0f,0.0f,1.0f);
        for (int i=1;i<stockings;i++)
        {
                glColor3f(((float)i/stockings)*1.0f,((float)i/stockings)*1.0f,1.0f);
                glVertex3f(x1+distance1*((cos(360.0/i*stockings)))*xscale1,y1+distance1*((sin(360.0/i*stockings)))*yscale1,z1);
                glVertex3f(x2+distance1*((cos(360.0/i*stockings)))*xscale2,y2+distance1*((sin(360.0/i*stockings)))*yscale2,z2);
                glVertex3f(x2+distance1*((cos(360.0/(i+1)*stockings)))*xscale2,y2+distance1*((sin(360.0/(i+1)*stockings)))*yscale2,z2);
                glVertex3f(x1+distance1*((cos(360.0/(i+1)*stockings)))*xscale1,y1+distance1*((sin(360.0/(i+1)*stockings)))*yscale1,z1);       
        }
}

int DrawGLScene(GLvoid)                                                                        // Here's Where We Do All The Drawing
{
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);        // Clear Screen And Depth Buffer
        glLoadIdentity();
        gluLookAt(5.0f,5.0f,-20.0f,5.0f,-2.5f,10.0f,0.0f,1.0f,0.0f);
//        glTranslatef(0.0f,0.0f,20.0f);
        glBegin(GL_QUADS);
        glColor3f(0.0f,0.4f,1.0f);
        for (int i=0;i<25;i++)
        {
                glVertex3f(i*1.5f-0.125f-2.0f,-2.0f,-100.0f);
                glVertex3f(i*1.5f+0.125f-2.0f,-2.0f,-100.0f);
                glVertex3f(i*1.5f+0.125f-2.0f,-2.0f,100.0f);
                glVertex3f(i*1.5f-0.125f-2.0f,-2.0f,100.0f);
                glVertex3f(-100.0f,-2.0f,i*1.5f+0.125f-2.0f);
                glVertex3f(100.0f,-2.0f,i*1.5f+0.125f-2.0f);
                glVertex3f(100.0f,-2.0f,i*1.5f-0.125f-2.0f);
                glVertex3f(-100.0f,-2.0f,i*1.5f-0.125f-2.0f);
        }
        glEnd();
        glRotatef(rtri,0.0f,1.0f,0.0f);
        glRotatef(rquad,1.0f,0.0f,0.0f);
        glRotatef(rz,0.0f,0.0f,1.0f);
        glBegin(GL_QUADS);
        CylinderRender(-5.0,5.0,2.0,2.0,-5.0,5.0,3.0,5.0,1.0,1.0,1.0,1.0,16,0.0,0.0,0.0);
        glEnd();
        return TRUE;                                                                                // Keep Going
}

根据原计划,CylinderRender函数中的x1是初始X位置,x2是末X位置,y1是初始Y位置,y2是末Y位置,z1是初始Z位置,z2是末Z位置,distance1是初始半径,distance2是末半径,xscale1是初始X缩放,yscale1是初始Y缩放,xscale2是末X缩放,yscale2是末Y缩放,stockings是侧面多边形数量,xangle是X角度,yangle是Y角度,zangle是Z角度
以下函数已定义:
glColor3f的作用是设置该点的颜色,三个参数的最大值是1.0,相当于255.
gluLookat的参数分别是视点X,视点Y,视点Z,目标点X,目标点Y,目标点Z,头部朝向X,头部朝向Y,头部朝向Z

不知为啥原因,运行出来的效果就这么奇葩……(是不是还是该让数学帝来…)


旋转一定角度后……



我本来想着如果这函数用得好的话建模可以完全不用担心的,看来代码建模得等一会儿了…… (限于各种原因我很难实现打开模型文件和操作模型和使模型骨骼旋转兼得,所以只能用代码建模了)

点评

目测是C++ ……?  发表于 2013-7-29 09:38

Lv2.观梦者

梦石
0
星屑
478
在线时间
750 小时
注册时间
2012-11-10
帖子
924
2
发表于 2013-7-28 22:33:56 | 只看该作者
已晕,求治疗
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
127
在线时间
776 小时
注册时间
2013-1-11
帖子
594
3
发表于 2013-7-29 11:59:37 | 只看该作者
好多星星啊········我要晕了·········
快点“点我啊”三个字吧!(宣传不要这么坑爹啊喂!!!)
[url=https://rpg.blue/thread-368388-1-1.html]点我啊![/url]
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

HATSUNE★MIKU
KAGAMINE★LEN
KAGAMINE★RIN
MEGURINE★LUKA

梦石
0
星屑
849
在线时间
1172 小时
注册时间
2012-4-2
帖子
5035

开拓者

4
发表于 2013-7-29 12:00:19 | 只看该作者
好多太阳啊!= =这是什么

点评

太阳是指么子东西?  发表于 2013-7-29 23:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
156
在线时间
629 小时
注册时间
2012-6-9
帖子
1321
5
发表于 2013-7-29 12:03:23 | 只看该作者
目测不是C语言。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

天才琪露诺

梦石
0
星屑
54
在线时间
276 小时
注册时间
2013-6-24
帖子
1741
6
发表于 2013-7-29 12:05:11 | 只看该作者
好多VIP啊 都砸过来吧。

说人家是笨蛋的自己才是笨蛋,我最强了,最最最强!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
177 小时
注册时间
2011-7-3
帖子
235
7
 楼主| 发表于 2013-7-29 22:59:53 | 只看该作者
首先可以说这就是C++,倒是这数学帝呢……(唉,是不是一提数学类问题就没人能给个回答啥的?就算有曲面方程也没用,真是太悲哀了)

点评

你都不讲解一下原理,让我们这些小学生怎么办  发表于 2013-7-29 23:08
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
276 小时
注册时间
2011-6-5
帖子
133
8
发表于 2013-7-29 23:51:22 | 只看该作者
c++  ?
好晕。。一个函数那么一堆参数。。不明觉厉
研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这话句后,才发这现里的字全是都乱的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
9
发表于 2013-7-30 00:07:45 手机端发表。 | 只看该作者
描述太抽象,不知道你要干嘛
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
654
在线时间
336 小时
注册时间
2012-2-4
帖子
1767
10
发表于 2013-7-30 07:30:24 | 只看该作者
我表示没看懂。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-29 13:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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