CodeBlocks下的freeglut環境配置(一)(附圖文)
#include <iostream> #include <gl/glut.h> using namespace std; GLfloat eyex=0,eyey=50,eyez=35; //===========================OpenGL部分========================= void init() { /* //設定材質 GLfloat mat_ambient[] = { .8, .8, .8, 1.0 }; GLfloat mat_diffuse[] = { .8, .0, .8, 1.0 }; GLfloat mat_specular[] = { 1.0, .0, 1.0, 1.0 }; GLfloat mat_shininess[] = { 50.0 }; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, mat_ambient); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess); //為了讓這些球體有一點立體感, //我們使用光照。在(1, 1, -1)處設定一個白色的光源 static const GLfloat light_position[] = {1.0f, 1.0f, -1.0f, 1.0f}; static const GLfloat light_ambient[] = {0.2f, 0.2f, 0.2f, 1.0f}; static const GLfloat light_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f}; static const GLfloat light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f}; glLightfv(GL_LIGHT0, GL_POSITION, light_position); //光源位置 glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient); //環境光 glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); //漫反射 glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); //鏡面光 glEnable(GL_LIGHTING); //啟動光源 glEnable(GL_LIGHT0); //啟動光0 glEnable(GL_DEPTH_TEST);//啟動深度測試 glDepthFunc(GL_LESS); //啟動裁剪 */ GLfloat light_position1[] = { 1.0, 1.0, 1.0, 0.0 }; GLfloat light_position2[] = { 1.0, 1.0, -1.0, 0.0 }; glLightfv(GL_LIGHT0, GL_POSITION, light_position1); glLightfv(GL_LIGHT1, GL_POSITION, light_position2); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_LIGHT1); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); } void timer(int p) { glutPostRedisplay(); glutTimerFunc(20, timer, 0); } void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(eyex,eyey,eyez,0,0,0 ,0,1,0); //繪製一個平面 glPushMatrix(); glTranslatef(0,-0.5,0); glScalef(20,1,20); glutSolidCube(1); glPopMatrix(); glPushMatrix(); glutSolidSphere(1,50,50); glPopMatrix(); glutSwapBuffers(); //雙緩衝 } void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (h ==0 ) h = 1; gluPerspective(45.0f,(GLfloat) w / (GLfloat)h , 0.5f, -1000.0f); /* 正投影 if (w <= h) glOrtho(-10.5, 10.5, -10.5 * (GLfloat) h / (GLfloat) w, 10.5 * (GLfloat) h / (GLfloat) w, -1000.0, 1000.0); else glOrtho(-10.5 * (GLfloat) w / (GLfloat) h, 10.5 * (GLfloat) w / (GLfloat) h, -10.5, 10.5, -1000.0, 1000.0); */ glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 'w': //前 break; case 's': //後 break; case 'a': //左 break; case 'd': //右 break; case 'q': //上 break; case 27: exit(0); break; } } void MouseEvent(int button, int state, int x, int y) { switch(button) { case GLUT_LEFT_BUTTON: cout<<"GLUT_LEFT_BUTTON"<<endl; break; case GLUT_RIGHT_BUTTON: cout<<"GLUT_RIGHT_BUTTON"<<endl; break; case GLUT_MIDDLE_BUTTON: cout<<"GLUT_MIDDLE_BUTTON"<<endl; break; } } void MotionMove(int x,int y) { } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowPosition(100, 100); glutInitWindowSize(800, 600); glutCreateWindow("OpenGLLuaDemo"); init(); glutTimerFunc(20,timer,0); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMouseFunc(MouseEvent); glutMotionFunc(MotionMove); glutMainLoop(); return 0; }
相關推薦
CodeBlocks下的freeglut環境配置(一)(附圖文)
#include <iostream> #include <gl/glut.h> using namespace std; GLfloat eyex=0,eyey=50,eyez=35; //===========================OpenGL部分=========
雲伺服器linux系統啟動web專案環境配置_(一、jdk下載安裝)
官網下載jdk(linux) 檢視linux 多少位 命令:getconf LONG_BIT 下載對應jdk 1.上傳壓縮包 cd ..回
Deepin下開發環境配置(個人備用)
文章目錄 Python相關 安裝pip和pip3 虛擬環境管理 Pycharm 安裝Git 前端相關 VSCo
mac下pycharm環境配置(選擇要用的python版本,選擇系統中的python還是獨立環境的python)
pycharm提供了一個很好的機制,把依賴的環境封起來。這樣移植到其他電腦到時候就不會缺少這個那個庫的情況了。開啟偏好設定,如下圖步驟一,二。點2處的齒輪,選擇add。 出現下圖: 1處即上邊提到的“獨立環境” 2處是系統中的環境 3處是放直譯器的位置,如果提示非
windows10下使用wsl子系統搭建sanic的環境(一篇解決所有問題)
sanic的uvloop不支援在windows執行,所以只能在linux下搭建win10的wsl(子系統)已經是正式版了。部署環境時,請按照我給的順序,這樣能讓你少出bug我們首先開啟windows的w
阿里雲伺服器一鍵WEB環境配置---Linux學習筆記(3)
我們可以看到正在執行狀態的服務及埠:9000埠是php程序服務,3306埠是mysql服務,80埠是nginx服務,21埠是ftp服務。 如果看到以上資訊,則說明安裝沒有異常。這裡有一點需要注意的是,如果您選擇安裝的是apache,則沒有上面的9000埠。為什麼選擇安裝的是apache,就沒有9000
windows下虛擬環境中建立Django專案(建立虛擬環境,安裝virtualenv,安裝Django,建立專案)
一、建立虛擬環境 pip install virtualenv1 要使用Django,首先要建立一個虛擬工作環境。我們先為專案建立一個資料夾learn,在資料夾中開啟命令列(shift+右擊),來建立另一個虛擬環境。 如果使用的是python 3,可使
語音識別工具Kaldi環境配置及安裝手冊(更新加強版)
一、 安裝作業系統 1. 下載Ubuntu 14.04版本 注:強烈不建議下載比較新的版本,首先不能保證穩定性及相容性;其次,太新的版本出了問題都沒辦法google。另外,不要手賤的點更新之類的,否則
MAC系統下Sublime Text3 配置Python3詳細教程(親測有效)
這段時間由於想要學習Python,看到了有人推薦sublime text3這一款簡潔的編輯器,便下載來試一下。由於學習的是Python3,在這款軟體裡面是不包含的,因此環境需要再自己配置一遍,在網上看了許多的教程,苦苦沒有找到一個有效的,今天看書的時候才發現了正確的
win 10 + archlinux 雙系統安裝(BTRFS檔案系統)、配置、美化----安裝桌面環境配置和基本美化(xfce4+lightdm)
接著上一篇的講,當你安裝完系統之後,你會發現,開機後仍然是命令列介面。步驟如下: 登入系統,輸入 root , 然後敲擊 回車 , 首先,你需要執行如下命令進行有線連線的
OpenCV3.2.0+VS2017環境配置與常見問題(鉅細坑爹版)
安裝 常見問題 題外話:首先,配環境一定要有耐心。。。 本部落格是本小白第一次裝OpenCV成功後第一時間整理髮布。用的是剛下載好的OpenCV3.2.0版,用x64編譯器Debug執行(當然Release差不多),未經過cmake編譯
一.React-Native學習之Window環境下搭建環境配置
一.安裝JDK 1.從Java官網下載JDK並安裝。 也可以從百度雲下載x64版本 2.安裝成功可以用java -version檢視版本資訊 3. 配置環境變數 JAVA_HOME=C:\Program Files\Java\
linux下安裝jdk 詳細步驟(一條命令即可安裝)
作為Java開發人員,在Linux下安裝一些開發工具是必備技能,本文以安裝jdk為例,詳細記錄了每一步的操作命令,以供參考。 第一種方法 只需要一條命令就可以安裝jdk: yum install java-1.8.0-openjdk* -y執行了這條命令不需要配
Maven環境配置及簡單使用(二)
Maven環境變數配置 配置Maven前先從官網下載相關版本,Maven下載地址:http://maven.apache.org/download.cgi,筆者使用最新版本apache-mave
由linux命令列下命令引數前的一橫(-)和兩橫(--)的區別而得知的
摘自:http://blog.csdn.net/songjinshi/article/details/6816776 在解釋這些區別之前我們先了解一下有關linux的背景知識,這個需要大家先認真看完就會對這些區別有更深入的瞭解,對linux也有更深的瞭解。 關於Sys
Ubuntu下將vim配置為Python IDE(轉)
配置好了Django的環境,該把vim好好配置一下當做python的IDE來用。 在Windows下用慣了各種現成的工具,轉到Linux下,一下沒了頭緒……好歹google出一些別人的心得,折騰來折騰去,也算是把開發環境配好了。 1. 安裝完整的vim # apt-get install vim-gno
Linux下的檔案操作命令(一、檔案顯示命令 )
1.cat命令 cat用來顯示檔案的內容。 1)一般格式 cat 【選項】 檔案 2)說明 一是顯示檔案內容;二是連線兩個或者多個檔案。 3)常用選項 -b 從1開始對所有非空輸出編號
ubuntu下安裝及配置git的方法(github)
轉自:http://blog.csdn.net/tina_ttl安裝Git一個全新的ubunt系統,需要安裝Git(系統是不具有該工具的),方法如下: 在terminel中輸入如下命令:sudo apt-get install git git-core git-gui git-doc git-svn git-
Android鎖屏或滅屏狀態下,快速按兩次音量下鍵實現抓拍功能(一,Framework層實現)
WindowManagerService迴圈讀取下面按鍵訊息並分發給視窗,在訊息分發前會在PhoneWindowManager.interceptKeyBeforeQueueing方法中進行訊息的過濾。因此該實現方式為在訊息分發前的interceptKeyBeforeQueueing方法中監聽當前按
windows下C++編譯配置hiredis的方法(VS2017)
前言 最近在學習redis的使用,以及在windows下通過C++連線redis伺服器進行操作。在參考了幾篇部落格,又自己處理許多編譯錯誤的問題,終於將hiredis客戶端配置成功了,特此記錄,方便檢視。 開始 環境說明 在這