CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  图形图像/机器视觉

怎么用C实现单位立方体的一点透视?

楼主renzhpl(飞)2005-06-02 15:36:15 在 专题开发/技术/项目 / 图形图像/机器视觉 提问

怎么用C实现单位立方体的一点透视?怎么建立三维立体坐标系?怎么画单位立方体? 问题点数:50、回复次数:4Top

1 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-06-02 17:25:17 得分 30

首先,不知道楼主是否已经知道了图形学的透视原理  
  这个是必备的知识  
   
  其次,如果有opengl或者directx作为底层显示平台就很容易了,可以找到这样的例子的  
  如果必须自己来绘制,那么在知道透视原理的情况下,存在的唯一问题就是组成立方体的各个面之间的遮挡关系问题了  
   
  遮挡关系对于所有的凸体(立方体是凸体)可以通过简单的背面剔除方法来解决  
  那就是给组成凸体的每个面定义一个向外的法向量,  
  检测视线方向和法向量之间的夹角,如果小于90度则不绘制(两个向量点乘结果为正)  
  否则就绘制  
  这样自然就可以把背朝视方向的面忽略掉了,就不会产生遮挡问题了  
  Top

2 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-06-02 17:32:38 得分 0

首先,无论如何你都要懂得计算机图形学当中的三维透视原理,找本书补习一下  
              同时,需要一点向量矢量计算的知识,不是必须,有最好  
   
  其次,如果可以借助opengl或者directx那么,在你网上就可以找到满足你的要求的例子  
              如果不行,也没有问题,在满足了首要条件后,遗留的只是组成盒子的各个面之间的遮挡问题  
   
  解决遮挡问题的方法很多,针对凸体(立方体是凸体)最简单的就是背面剔除方法  
  给组成凸体的每个面赋予一个法向量  
  对于固定的视点和视线方向,循环绘制所有的面  
        对于每个面,检测视线和法向量之间的夹角  
        如果夹角小于90,则跳过这个面,不绘制(两个向量的点乘结果为正)  
        否则绘制  
   
  记得这个例子在很久以前,应该是92,或者是93年的计算机世界报上刊登过,那篇文章以这个题目为例子,说明大约6,7种解决遮挡问题的算法,并且提供了源码,不知道现在网络上能否搜索出来了Top

3 楼zzwu(未名)回复于 2005-06-02 17:57:48 得分 15

我刚做了一个魔方游戏,用到了单位立方体的一点透视,但是用Pascal实现的。  
  我隔几天后可以把有关段落转为C在这里贴出(现在有些其他事情)。Top

4 楼summer54(cofd)回复于 2005-06-02 23:34:20 得分 5

学习Top

相关问题

  • 立方体怎么画?
  • 谁可以帮我写一个立方体旋转的c语言程序么??多谢,急用,分数先给30,如果满意,我加到80
  • 如何画三维立方体?
  • 关于建立方体的问题
  • 维、立方体概念是什么,有什么应用
  • 急急急!在vb中绘制旋转立方体
  • opengl中画完一个立方体后,位置的问题。。。。
  • Sql server OLAP Server 的问题,win98如何支持更新立方体?
  • Vb+Sql server OLAP Server 的问题,win98如何支持更新立方体?
  • 怎样用索引缓冲画一个有光照效果的立方体

关键词

  • 立方体
  • 原理
  • 解决
  • 向量
  • 遮挡
  • 绘制
  • 凸体
  • 夹角
  • 单位
  • 一点透视

得分解答快速导航

  • 帖主:renzhpl
  • happy__888
  • zzwu
  • summer54

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo