计算机图形学——绘制钻石图案
来源:互联网 发布:淘宝网html源码下载 编辑:程序博客网 时间:2024/04/30 14:21
要求:绘制钻石图案。将一圆周进行n等分,然后将所有的等分用直线连接,构成图案。
n=8
q =2*p/n
X=2*r*cos(q)
Y=r*sin(q)
#include <GL/glut.h>#include <math.h>#include <stdlib.h>#include <stdio.h>#define pi 3.14159265int n=8;int R=200,CX=250,CY=250;int *point;void initGraph(void);void drawCircle(int cx, int cy, int r);void display(void);void drawLine(int x1, int y1, int x2, int y2);void main(int argc, char **argv){ float w,wi; glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB) ; glutInitWindowSize(500,500); glutCreateWindow("n阶钻石图案"); initGraph();point=(int*)malloc(sizeof(int)*n*2);//申请存储空间w=2*pi/n;wi=w/2;for(int i=0;i<2*n;i+=2){point[i]=(int)(CX+R*cos(wi));point[i+1]=(int)(CY+R*sin(wi));wi+=w;} glutDisplayFunc(display); glutMainLoop(); if(point!=NULL)free(point);//释放存储空间}void initGraph (void){ glClearColor(0.0,0.0,0.0,0.0); gluOrtho2D(0.0,500.0,0.0,500.0);//窗口坐标左下角(0,0), 右上角(500,500)}void display(void){ glClear(GL_COLOR_BUFFER_BIT) ; glColor3f(5.0, 3.0, 4.0) ; for(int i=0;i<2*n-2;i+=2){ for(int j=i+2;j<2*n;j+=2){ drawLine(point[i],point[i+1],point[j],point[j+1]); } }} void drawLine(int x1, int y1, int x2, int y2) { glBegin(GL_LINES); glVertex2d(x1, y1); glVertex2d(x2, y2); glEnd(); glFlush() ;}
阅读全文
0 0
- 计算机图形学——绘制钻石图案
- OPENGL—钻石图案
- 计算机图形学——绘制直线
- 绘制钻石图案(openGL和C++)
- 钻石图案的绘制(Diamond Printing Program)
- 实时计算机图形学-----绘制管线
- 计算机图形学-绘制圆、椭圆
- 计算机图形学-OpenGL-绘制五角星
- 计算机图形学——资料
- 计算机图形学—几何变换
- 计算机图形学————绘制动态的行星系
- 计算机图形学——OpenGL学习系列之绘制3D下的小桌子
- OpenGL 绘制长方体 计算机图形学
- OpenGL 绘制字母 计算机图形学
- 计算机图形学笔记---GPU图形绘制管线
- 计算机图形学-三次Bezier曲线的绘制
- 绘制钻石图案。将一圆周进行n等分,然后将所有的等分用直线连接,构成图案。
- 计算机图形学——GLSL编程
- Libevent源码分析-----连接监听器evconnlistener
- 四层板的设计
- No323. Number of Connected Components in an Undirected Graph
- 水题
- 【机房重构】——存储过程的运用
- 计算机图形学——绘制钻石图案
- java泛型中通配符的使用
- Python下使用pika简单实现RabbitMQ通信
- 2017年河南省ACM省赛 Problem D: 年终奖金
- 搭建element-ui的Vue前端工程操作
- Java编写多线程, Callable,Runnable比较及用法
- 原地堆排序
- 读取xml文件
- 《我的互联网方法论 · 周鸿祎》读书笔记