资源简介
该代码提供了一个简单的方法绘制花瓶,源码具有参考性。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
#define PI 3.1415
double Noise(int x int y) // 根据(xy)获取一个初步噪声值
{
int n = x + y * 57;
n = (n << 13) ^ n;
return (1.0 - ((n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824.0);
}
struct Point
{
double x y z;
Point();
Point(double _x double _y double _z) {
x = _x;
y = _y;
z = _z;
}
};
double *vertex;
vector m_vertex;
void BuildVase();
void init() {
glClearColor(0 0 0 0);
glShadeModel(GL_SMOOTH);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
GLfloat light_ambient[4] = { 10.111.0 };
GLfloat light_diffuse[4] = { 0000.0 };
GLfloat light_specular[4] = { 0000.0 };
GLfloat light_position[4] = { 100.01000.00.0 };
glLightfv(GL_LIGHT0 GL_AMBIENT light_ambient);
glLightfv(GL_LIGHT0 GL_DIFFUSE light_diffuse);
glLightfv(GL_LIGHT0 GL_SPECULAR light_specular);
glLightfv(GL_LIGHT0 GL_POSITION light_position);
BuildVase();
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
gluLookAt(0 700 1000 0 0 0 0 1 0);
glTranslatef(0 -100 0);
glDisable(GL_LIGHTING);
glBegin(GL_QUADS);
for (int i = 0; i < m_vertex.size(); i++)
{
//glColor3f(1 0 0);
float cx = Noise(0 m_vertex[i].x);
float cy = Noise(0 m_vertex[i].y);
float cz = Noise(0 m_vertex[i].z);
glColor3f(cz cz cz);
glVertex3f(m_vertex[i].x m_vertex[i].y m_vertex[i].z);
}
glEnd();
glEnable(GL_LIGHTING);
//glutSolidSphere(5.0 20 10);
glutSwapBuffers();
}
void reshape(int w int h)
{
glViewport(0 0 (GLsizei)w (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0 (GLfloat)w / (GLfloat)h 0.1 30000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
相关资源
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- 安科瑞智能电能表MODBUS通讯程序 VC6
- 九齐单片机源码
- 安卓c语言开发SDL2+opengles
- Qt画图工具源码(qgraphics draw)
- qt 串口助手源码
- modbus 主机源码
- 《LINUX C编程从初学到精通》光盘源码
- OLED驱动源码
- tm1650+stm32f103源码(board_tm1650.c)
- cheat engine 7.2源码
- CrySearch内存搜索器源码
- FTP客户端源码(c++)
- MFC视频播放器源码(支持avi/wma/mp3等格
- CreatBitmap图片合成源码
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- vs2008 can总线通讯源码
- 宠物管理系统课程设计(源码+数据库
- Windows扩展命令程序(源码)
- c语言实现火车订票系统(控制台)源
- 鼠标连点器(附源码)
- c++ 简易贪吃蛇源码
- 杀毒软件源码
- 经典外汇智能交易程序Amazing3.1源码(
- 微型文件系统源码(FatFs)
- 海康私有流分析接口源码(附使用说
- VC6 USB开发源码
- SVM算法实现(源码+文档)
评论
共有 条评论