修改的C++版Opengl艺术画实现

用C++语言改编了一个python版本的艺术画opengl实现,,代码与效果如下

感觉用c++绘制速度就是快

#include <math.h> #include <GL/glut.h>int W, H, R;void init() {glClearColor(1, 1, 1, 1);}void drawFunc() {float r;glClear(GL_COLOR_BUFFER_BIT);glColor3f(0, 0, 0);glBegin(GL_POINTS);for(float x = -R; x <= R; x += 0.04) {for(float y = -R; y <= R; y += 0.04) {r = cos(x) + sin(y);glColor3f( cos(y * r), cos( x * y * r), sin( x * r) );glVertex2f(x, y);}}glEnd();glFlush();}void reshape(int w, int h) {if (h <= 0) h = 1;glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if (w <= h)gluOrtho2D(-R, R, -R * h / w, R * h / w);elsegluOrtho2D(-R * w / h, R * w / h, -R, R);glMatrixMode(GL_MODELVIEW);glLoadIdentity();} void keyboard(unsigned char key, int x, int y) {if (key == 27 || key == 'q')exit(0);} int main(int argc, char **argv) {glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowPosition(20, 20);glutInitWindowSize(W, H);glutCreateWindow("Artist Drawer");glutReshapeFunc(reshape);glutDisplayFunc(drawFunc);glutKeyboardFunc(keyboard);W = H = 500;R = 10;init();glutMainLoop();}

理想的路总是为有信心的人预备着

修改的C++版Opengl艺术画实现

相关文章:

你感兴趣的文章:

标签云: