opengl怎么判断墙壁是正面还是侧面

zzz822163 2008-10-09 05:28:46
一间房子它有4个面啦,我们用眼睛当然一眼就看出来前面后面左右两面啦,那么用程序可以判断出来吗,

glTexCoord2f(0.000000,0.000000)
glVertex2f(-378.000000,308.000000)
glTexCoord2f(0.664063,0.000000)
glVertex2f(-293.000000,308.000000)
glTexCoord2f(0.664063,0.984375)
glVertex2f(-293.000000,371.000000)
glTexCoord2f(0.000000,0.984375)
glVertex2f(-378.000000,371.000000)

还有glVertex2f里负的参数是什么意思呢?用glVertex2f怎么画墙的侧面?
...全文
192 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzz822163 2008-10-10
  • 打赏
  • 举报
回复
我研究别人写好的程序,没有源文件,他就全用的glVertex2f,我不明白他是如何搞定的
而且glRotate , glTranslate他都没用,我就觉得有点奇怪
nifeinifei 2008-10-10
  • 打赏
  • 举报
回复
补充一下, 很好奇为什么不用glvertex3f(..)
nifeinifei 2008-10-10
  • 打赏
  • 举报
回复
可以的
用glRotate + glTranslate旋转加平移到正确的位置.
然后每次只用glVertex2f是么..

这样做就只需要指定两个坐标了, 当然旋转平移以后x不再画在x轴, y也不再画在y轴.

刚没事试了一下
glPushMatrix();
glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(0.0, 0.0);
glVertex2f(0.0, 1.0);
glVertex2f(1, 1);
glVertex2f(1, 0);
glEnd();
glRotatef(90, 1, 0, 0);
glBegin(GL_QUADS);
glColor3f(0, 0, 1);
glVertex2f(0.0, 0.0);
glVertex2f(0.0, 1.0);
glVertex2f(1, 1);
glVertex2f(1, 0);
glEnd();
glPopMatrix();

是可以画出互相垂直的两个面的.
zzz822163 2008-10-10
  • 打赏
  • 举报
回复
我是glOrtho,那只能用glVertex3f了?
nifeinifei 2008-10-10
  • 打赏
  • 举报
回复
glVertex2f(float x, float y)只能标志x和y坐标的值, 那z坐标怎么办啊? 你的场景设置是glOrtho(..)还是gluOrhto2D(...)还是gluPerspective(...)啊?
zzz822163 2008-10-10
  • 打赏
  • 举报
回复
glVertex2f(float x, float y)我画出的都是平行于屏幕的,难道要画垂直于屏幕的只能用glVertex3f吗?
yale13 2008-10-10
  • 打赏
  • 举报
回复
你那段代码画的是一个贴了纹理的平面吧,不是空间的~空间判断各个面用的是法线~
nifeinifei 2008-10-10
  • 打赏
  • 举报
回复
glVertex2f(float x, float y)里的x和y是坐标值,当然可正可负. 楼主贴的纹理在坐标系的第二象限. 至于判断是立方体的哪个面, 如果是在三维坐标系下做图的话, 而且没有经过旋转的话(旋转了正面就可能变成侧面了),贴图坐标的z坐标都一样就是平行于屏幕的面, x坐标都一样就是垂直x轴的面, y坐标亦然...不知道你用什么标志一个纹理面哦. 四个顶点坐标吗? 如果是二维坐标系下做图, 要自己画成三维效果的画,就没必要用openGL了吧..
jacklzw88 2008-10-10
  • 打赏
  • 举报
回复
法线
zzz822163 2008-10-10
  • 打赏
  • 举报
回复
用glVertex3f可以描述出前后左右上下六个面,用glVertex2f怎么描述出左右两面?

zzz822163 2008-10-10
  • 打赏
  • 举报
回复
原来他房子是自己事先准备的一张图片,果然只是一个二维平面贴图
nifeinifei 2008-10-10
  • 打赏
  • 举报
回复
被打败了....这就是在一个二维平面上贴了个图, 正对着我们的. 就一个面. 如果一定要说的话, 只有正面, 没有侧面.
zzz822163 2008-10-10
  • 打赏
  • 举报
回复

2008.10.09 09:33:28 glGetTexLevelParameteriv(GL_TEXTURE_2D,0,GL_TEXTURE_WIDTH,0x13f5ec)
2008.10.09 09:33:28 glGetTexLevelParameteriv(GL_TEXTURE_2D,0,GL_TEXTURE_HEIGHT,0x13f5e0)
2008.10.09 09:33:28 glGenTextures(1,0x792eb1c)
2008.10.09 09:33:28 glBindTexture(GL_TEXTURE_2D,93)
2008.10.09 09:33:28 glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA4,64,64,0,GL_BGRA,GL_UNSIGNED_SHORT_4_4_4_4_REV,0x0000)
2008.10.09 09:33:28 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR)
2008.10.09 09:33:28 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR)
2008.10.09 09:33:28 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP)
2008.10.09 09:33:28 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP)
2008.10.09 09:33:28 glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE)
2008.10.09 09:33:28 glBindTexture(GL_TEXTURE_2D,93)
2008.10.09 09:33:28 glTexSubImage2D(GL_TEXTURE_2D,0,0,0,61,63,GL_BGRA,GL_UNSIGNED_SHORT_4_4_4_4_REV,0x7d666d0)
2008.10.09 09:33:28 glGetError()
2008.10.09 09:33:28 glColor4ub(255,255,255,255)
2008.10.09 09:33:28 glBindTexture(GL_TEXTURE_2D,93)
2008.10.09 09:33:28 glBegin(GL_QUADS)
2008.10.09 09:33:28 glTexCoord2f(0.000000,0.000000)
2008.10.09 09:33:28 glVertex2f(-65.000000,335.000000)
2008.10.09 09:33:28 glTexCoord2f(0.953125,0.000000)
2008.10.09 09:33:28 glVertex2f(-4.000000,335.000000)
2008.10.09 09:33:28 glTexCoord2f(0.953125,0.984375)
2008.10.09 09:33:28 glVertex2f(-4.000000,398.000000)
2008.10.09 09:33:28 glTexCoord2f(0.000000,0.984375)
2008.10.09 09:33:28 glVertex2f(-65.000000,398.000000)
2008.10.09 09:33:28 glEnd()

你上面说的两个函数他也没用,他画图的时候来来回回就用这么些函数
nifeinifei 2008-10-10
  • 打赏
  • 举报
回复
确实奇怪...你确定他没有在其他地方操作模型矩阵吗?比如glLoadMatrix()glMultiMatrix()什么的, 要不, 我猜的, 本来就是都画在同一平面的, 侧面就画成平行四边形, 哈哈
Hiiishe 2008-10-09
  • 打赏
  • 举报
回复
没明白你的意思。。。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 Altium Designer 18是一款功能丰富的电子设计自动化工具,其集成了电路原理图绘制、PCB布局规划、三维视图展示、电路仿真分析以及生产文件生成等多项核心功能,为电子工程师们提供了一个全面的硬件设计解决方案。该软件的官方中文指导材料系统地阐述了从项目初始阶段到最终完成的全过程操作方法。 在“AD18 官方中文指导材料”中,使用者可以掌握以下核心内容要点: 1. **系统配置与界面认知**:熟悉Altium Designer 18的工作平台,涵盖菜单选项、工具栏配置、工作区域安排,以及个性化工作界面的设定方法。 2. **项目创建流程**:掌握如何建立新的项目工程,包括工程参数配置、项目模板选取,以及项目文件的添加操作。 3. **电路图绘制技术**:学习电路原理图的绘制流程,包括元件库的维护管理、元件放置技巧、连接线路绘制、属性编辑操作,以及网络表的自动生成方法。 4. **元件库构建与管理**:了解如何建立自定义元件库,执行元件的导入与导出任务,以及利用Altium Designer自带的元件资源库。 5. **PCB布局设计方法**:掌握PCB设计的基本准则,如元件布局策略、布线技巧、层叠结构调整、布线规则优化,以及冲突检测与短路处理技术。 6. **设计规范与约束条件**:理解设定设计规范和电气约束条件的关键性,包括间距参数设定、焊盘尺寸规格、过孔尺寸要求等,以及运用规则检查进行设计验证的流程。 7. **三维模型整合应用**:学习如何将三维模型与PCB设计内容相结合,以实现更为直观的机械配合验证。 8. **电路性能仿真技术**:掌握使用Altium Des...
源码链接: https://pan.quark.cn/s/a4b39357ea24 ### 接口测试知识要点说明 #### 一、接口测试的定义及分类 1. **概念阐释**: - 接口测试作为软件测试的关键环节,主要对系统之间的交互点进行验证。 - 它旨在核实接口的正确性、稳定性和功能性,保障各个系统组件能够依照预期执行交互操作。 2. **实施情境**: - 适用于多系统联合开发的环境。 - 适用于包含多个子系统的复杂应用系统开发过程。 3. **适用范围**: - 为其他系统提供支持的底层基础架构系统。 - 负责协调中心服务的系统架构。 4. **分类标准**: - **模块接口测试**:通常作为单元测试的一部分,适用于独立构建的功能模块。 - **Web接口测试**: - **服务端接口测试**:针对客户端与服务器端之间的接口进行验证。 - **外部接口测试**:对第三方提供的接口进行测试,例如支付平台提供的授权登录接口。 5. **测试角度**: - **接口功能验证**:核实接口功能是否满足预期要求。 - **接口性能评估**:衡量接口的处理能力及响应时间。 - **接口稳定性考察**:检测接口在长时间运行中的表现情况。 - **接口安全检测**:确保接口能够抵御非法访问或数据篡改。 6. **测试手法**: - **参数细致测试**:深入测试接口的输入参数和输出结果。 - **场景模拟测试**:依据实际业务场景进行测试验证。 #### 二、接口测试的详细流程 1. **测试规划**: - 明确测试范围、目标及所需资源。 - 规划测试策略,选择适宜的工具和技术手段。 2. **测试用例设计**: - 依据需求文档和接口规格文档设计测试用例。 - 覆...

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧