赛平斯基Sierpinski垫片 源代码
来源:互联网 发布:vpn看片什么软件 编辑:程序博客网 时间:2024/04/28 05:43
#include <gl/glut.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct GLPoint{
GLfloat x, y;
};
void myDisplay(void);
void myReshape(int x, int y);
void myMouse(int button, int state , int x ,int y);
void myKeyboard(unsigned char key,int x, int y );
void myInit(void);
void sierpinski_render(void);
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //单缓冲
glutInitWindowSize(640,480);
glutInitWindowPosition(100,150);
glutCreateWindow("my first attempt");
//只有注册回调函数才显示窗口,奇怪
glutDisplayFunc(myDisplay);
glutReshapeFunc(myReshape);
glutMouseFunc(myMouse);
glutKeyboardFunc(myKeyboard);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
sierpinski_render();
}
void myReshape(int x, int y){
std::cout<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myMouse(int button, int state , int x ,int y){
std::cout<<"state:"<<state<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myKeyboard(unsigned char key,int x, int y ){
std::cout<<key<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myInit(void){
std::cout<<"Init Begin..."<<endl;
glClearColor(1.0,1.0,1.0,1.0); //设定清除颜色,这条指令只是为后面的使用设置状态变量 白色
glColor3f(0.0f,0.0f,0.0f); //笔触黑色
glPointSize(4.0); //笔触大小4x4像素
glMatrixMode(GL_PROJECTION); //设置合适的矩阵
glLoadIdentity();
gluOrtho2D(0.0,640,0.0,600); //设定屏幕窗口的变换
}
void sierpinski_render(void){
glClear(GL_COLOR_BUFFER_BIT);
GLPoint T[3] = {{10,10},{600,10},{300,600}};
int index = rand()%3;
GLPoint point = T[index];
glBegin(GL_POINTS);
glVertex2i(point.x, point.y);
for (int i=0;i<5500;i++)
{
index = rand()%3;
point.x = (point.x + T[index].x)/2;
point.y = (point.y + T[index].y)/2;
glVertex2i(point.x , point.y);
}
glEnd();
glFlush();
}
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct GLPoint{
GLfloat x, y;
};
void myDisplay(void);
void myReshape(int x, int y);
void myMouse(int button, int state , int x ,int y);
void myKeyboard(unsigned char key,int x, int y );
void myInit(void);
void sierpinski_render(void);
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //单缓冲
glutInitWindowSize(640,480);
glutInitWindowPosition(100,150);
glutCreateWindow("my first attempt");
//只有注册回调函数才显示窗口,奇怪
glutDisplayFunc(myDisplay);
glutReshapeFunc(myReshape);
glutMouseFunc(myMouse);
glutKeyboardFunc(myKeyboard);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
sierpinski_render();
}
void myReshape(int x, int y){
std::cout<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myMouse(int button, int state , int x ,int y){
std::cout<<"state:"<<state<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myKeyboard(unsigned char key,int x, int y ){
std::cout<<key<<"( "<<x <<" , "<<y<<" )"<<endl;
}
void myInit(void){
std::cout<<"Init Begin..."<<endl;
glClearColor(1.0,1.0,1.0,1.0); //设定清除颜色,这条指令只是为后面的使用设置状态变量 白色
glColor3f(0.0f,0.0f,0.0f); //笔触黑色
glPointSize(4.0); //笔触大小4x4像素
glMatrixMode(GL_PROJECTION); //设置合适的矩阵
glLoadIdentity();
gluOrtho2D(0.0,640,0.0,600); //设定屏幕窗口的变换
}
void sierpinski_render(void){
glClear(GL_COLOR_BUFFER_BIT);
GLPoint T[3] = {{10,10},{600,10},{300,600}};
int index = rand()%3;
GLPoint point = T[index];
glBegin(GL_POINTS);
glVertex2i(point.x, point.y);
for (int i=0;i<5500;i++)
{
index = rand()%3;
point.x = (point.x + T[index].x)/2;
point.y = (point.y + T[index].y)/2;
glVertex2i(point.x , point.y);
}
glEnd();
glFlush();
}
运行结果 :
- 赛平斯基Sierpinski垫片 源代码
- 赛平斯基垫片--Sierpinski垫片
- 赛平斯基垫片
- 基于递归法的Sierpinski“垫片”Matlab编程(添加上Matlab源码)
- Sierpinski镂垫
- Sierpinski三角形
- sierpinski镂垫
- Sierpinski三角形
- 实现垫片类--上
- 实现垫片类--下
- C++垫片类(1)
- C++垫片类(2)
- 垫片,弹垫,螺母的顺序
- 谢尔平斯基镂垫(Sierpinski gasket)
- 地球上惊现Sierpinski贝壳?
- OpenGL练习01 Sierpinski
- 谢尔宾斯基三角(Sierpinski triangle)
- 垫片类(自我的解释)
- valgrind使用的一个简单例子
- SQL基础
- openssl 学习之SSL/TLS
- 1
- 11
- 赛平斯基Sierpinski垫片 源代码
- [分享]未注册3杂.cn
- strncpy()函数的num
- MFC中绘图
- IT English Collection(24)of View hierarchy
- POJ 2406 Power Strings KMP求周期
- IO流
- struts2的ognl
- 整理:map/reduce工作流程