国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計算機圖形學(xué),OpenGL編寫的一個可實現(xiàn)旋轉(zhuǎn)縮放移動的房間,內(nèi)有數(shù)十種交互

這篇具有很好參考價值的文章主要介紹了計算機圖形學(xué),OpenGL編寫的一個可實現(xiàn)旋轉(zhuǎn)縮放移動的房間,內(nèi)有數(shù)十種交互。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

#include <stdlib.h>

#include<stdio.h>

#include<windows.h>

#include <GL/glut.h>

#include <math.h>

#include <gl/GLU.h>

//顏色宏定義

#define white 1.0f, 1.0f, 1.0f

#define black 0.0f, 0.0f, 0.0f

#define red 1.0f, 0.0f, 0.0f

#define blue 0.0f, 0.0f, 1.0f

#define skyBlue 135.0/255.0, 206.0/255.0, 1.0f

#define plum 1.0f, 187.0/255.0, 1.0f //淺紫色

#define pink 1.0f, 181.0/255.0, 197.0/255.0

#define lightGray 211.0/255.0, 211.0/255.0, 211.0/255.0

#define darkGray 156.0/255.0, 156.0/255.0, 156.0/255.0

#define dimGray 105.0/255.0, 105.0/255.0, 105.0/255.0

#define goldenrod 139.0/255.0, 115.0/255.0, 85.0/255.0 //木地板的顏色

#define burlywood 205.0/255.0, 170.0/255.0, 125.0/255.0

#define M_PI 3.14159265358979323846

#define moonlike 0.8392156f,0.9254902,0.94117647

const GLdouble FRUSTDIM = 100.0f;

GLfloat door = 0.0;

GLfloat sticker = 45.0;

GLfloat screen = 0.0;

GLfloat arm = 20.0;

GLfloat xiaom = -60.0;

int option = 0;

int doorOpen = 0;

float l1 = 0.25;

float ll = 1.0;

float win_of = 0.0;

GLdouble moon_x = -120.0, moon_y = 30.0f, moon_z = -180.0f;

// 追蹤觀察點的方向

static GLfloat s_eye[] = { 0,8.0,0 };

static GLfloat s_at[] = { 0.0,0.0,0.0 };

static GLfloat s_angle = -90.0; ???????????????????//如果初始角度設(shè)置為0則初始面向X軸正方向,設(shè)置為-90面向

//Z軸負(fù)方向,符合默認(rèn)情況下的設(shè)計習(xí)慣。

float PI = 3.14159f;

float rad = float(PI * s_angle / 180.0f);

#define SOLID 1

#define WIRE 2

GLdouble door_a = 0.0;

GLdouble c_r = 0.0f, c_g = 0.0f, c_b = 0.0f;

GLdouble chear_y = -75.0f, chear_s = 10.0f;

GLdouble person_x = 50, person_a = 0.0f;

bool mouseLeftDown;

bool mouseRightDown;

float mouseX, mouseY;

float cameraDistance = 0.0;

float cameraAngleX;

float cameraAngleY;

GLdouble door_y = 200.5f;

void drawcube(GLdouble x, GLdouble y, GLdouble z)

{

glPushMatrix();

glTranslatef(x, y, z);

glutSolidCube(5);

glPopMatrix();

}

void init(void) // All Setup For OpenGL Goes Here

{

glEnable(GL_NORMALIZE); // 不加此項會出現(xiàn)放大后物體變暗問題

glEnable(GL_DEPTH_TEST);

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

glEnable(GL_LIGHT1);

glFrontFace(GL_CCW);

glEnable(GL_COLOR_MATERIAL);

}

void display(void) // Here's Where We Do All The Drawing

{

glPushMatrix();

glClearColor(0.0, 0.0, 0.0, 0.0);

glRotatef(cameraAngleX, 1, 0, 0);

glRotatef(cameraAngleY, 0, 1, 0);

glTranslatef(0.0, 0.0, -cameraDistance);

//glTranslatef(0.0, 0.0, -300.0);

glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); //必須放在display中否則動畫會有bug

// TODO:

// Place light source here

{

GLfloat light0_ambient[] = { 0.2, 0.2, 0.2, 1.0 };

GLfloat light0_position[] = { 0.0,85.0, -100, 1.0 };

GLfloat light0_diffuse[] = { 0.2,0.2,0.2, 1.0 };

GLfloat light0_speculer[] = { 0.2,0.2,0.2, 1.0 };//高光

glLightfv(GL_LIGHT0, GL_POSITION, light0_position);

glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);

glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);

glLightfv(GL_LIGHT0, GL_SPECULAR, light0_speculer);

GLfloat spot_derection[] = { 0.0,-1.0,0.0 };

glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spot_derection);

glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 100);//聚光燈,照射的范圍

glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 125.0);//聚光的程度

//窗外的光

GLfloat light1_position[] = { moon_x,moon_y,moon_z };//位置

//GLfloat light0_ambient[] = { 0.6, 0.6, 0.6, 1.0 };//環(huán)境光

GLfloat light1_ambient[] = { 0.1, 0.1, 0.1, 1.0 };

//GLfloat light0_diffuse[] = { 0.5, 0.5, 0.5, 0.3 };//漫反射光

GLfloat light1_diffuse[] = { 0.2,0.2,0.2, 1.0 };

glLightfv(GL_LIGHT1, GL_POSITION, light1_position);

glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient);

glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse);

完整版代碼關(guān)注并私聊領(lǐng)取

}計算機圖形學(xué),OpenGL編寫的一個可實現(xiàn)旋轉(zhuǎn)縮放移動的房間,內(nèi)有數(shù)十種交互,交互,單片機,stm32計算機圖形學(xué),OpenGL編寫的一個可實現(xiàn)旋轉(zhuǎn)縮放移動的房間,內(nèi)有數(shù)十種交互,交互,單片機,stm32計算機圖形學(xué),OpenGL編寫的一個可實現(xiàn)旋轉(zhuǎn)縮放移動的房間,內(nèi)有數(shù)十種交互,交互,單片機,stm32文章來源地址http://www.zghlxwxcb.cn/news/detail-854467.html

到了這里,關(guān)于計算機圖形學(xué),OpenGL編寫的一個可實現(xiàn)旋轉(zhuǎn)縮放移動的房間,內(nèi)有數(shù)十種交互的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 計算機圖形學(xué) | 實驗六:旋轉(zhuǎn)立方體

    計算機圖形學(xué) | 實驗六:旋轉(zhuǎn)立方體

    華中科技大學(xué)《計算機圖形學(xué)》課程 MOOC地址:計算機圖形學(xué)(HUST) 在正式搭建環(huán)境之前,我們先來介紹一下讀完下面的部分你會了解些什么。 繪制出旋轉(zhuǎn)立方體需要的新知識 認(rèn)識一些 OpenGL的新功能 接下來,我們來介紹一下繪制旋轉(zhuǎn)立方體。繪制效果如下: Z-緩存(Z-Buff

    2024年02月06日
    瀏覽(86)
  • 計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第12章 曲面細(xì)分

    計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第12章 曲面細(xì)分

    術(shù)語Tessellation(鑲嵌)是指一大類設(shè)計活動,通常是指在平坦的表面上,用各種幾何形狀的瓷磚相鄰排列以形成圖案。它的目的可以是藝術(shù)性的或?qū)嵱眯缘模芏嗬涌梢宰匪莸綆浊昵癧TS16]。 在3D圖形學(xué)中,Tessellation指的是有點不同的東西(曲面細(xì)分),但顯然是由它的經(jīng)

    2024年02月08日
    瀏覽(35)
  • 計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第11章 參數(shù)曲面

    計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第11章 參數(shù)曲面

    在20世紀(jì)50年代和60年代在雷諾公司工作期間,皮埃爾·貝塞爾(Pierre Bézier)開發(fā)了用于設(shè)計汽車車身的軟件系統(tǒng)。他的程序利用了Paul de Casteljau之前開發(fā)的數(shù)學(xué)方程組,后者曾為競爭對手雪鐵龍汽車制造商[BE72,DC63]工作。de Casteljau方程僅使用幾個標(biāo)量參數(shù)描述曲線,同時使用

    2024年02月08日
    瀏覽(27)
  • 計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第10章 增強表面細(xì)節(jié)

    計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第10章 增強表面細(xì)節(jié)

    假設(shè)我們想要對不規(guī)則表面的物體進行建模,例如橘子凹凸的表皮、葡萄干褶皺的表面或月球的隕石坑表面。我們該怎么做?到目前為止,我們已經(jīng)學(xué)會了兩種可能的方法: (a)我們可以對整個不規(guī)則表面進行建模,但這么做通常不切實際(一個有許多坑的表面需要大量的

    2024年02月09日
    瀏覽(24)
  • 計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第9章 天空和背景

    計算機圖形學(xué)與opengl C++版 學(xué)習(xí)筆記 第9章 天空和背景

    對于室外3D場景,通??梢酝ㄟ^在地平線上創(chuàng)造一些逼真的效果,來增強其真實感。當(dāng)我們極目遠(yuǎn)眺,目光越過附近的建筑和森林,我們習(xí)慣于看到遠(yuǎn)處的大型物體,例如:云、群山或太陽(或夜 空中的星星和月亮)。但是,將這些對象作為單個模型添加到場景中可能會產(chǎn)生

    2024年02月09日
    瀏覽(21)
  • 【計算機圖形學(xué)】圖形變換(平移變換、比例變換、旋轉(zhuǎn)變換、對稱變換、錯切變換、復(fù)合變換)

    【計算機圖形學(xué)】圖形變換(平移變換、比例變換、旋轉(zhuǎn)變換、對稱變換、錯切變換、復(fù)合變換)

    一 實驗?zāi)康?編寫圖形各種變換的算法 二 實驗內(nèi)容 1 :自行設(shè)計基本圖案,完成1-5種簡單變換 實驗結(jié)果如下圖所示: 圖形初始化: 第一次點擊左鍵,實現(xiàn)平移變換: ? ? 第二次點擊左鍵,實現(xiàn)比例變換(同時伴有平移變換): ? 第三次點擊左鍵,實現(xiàn)對稱變換(以平行

    2024年02月05日
    瀏覽(28)
  • 計算機圖形學(xué):繪制一個3d交互場景(1)

    計算機圖形學(xué):繪制一個3d交互場景(1)

    OpenGL作為一種圖形與硬件的接口,與其他圖形程序開發(fā)工具相比較,它提供了眾多圖形函數(shù),直觀的編程環(huán)境簡化了三維圖形的繪制過程,使用OpenGL搭建一個三維場景,能夠通過輸入設(shè)備與場景內(nèi)物體交互。 豪華單間 配置環(huán)境:vs22+freeglut庫 1.繪制墻體使其成為封閉空間,在

    2024年02月11日
    瀏覽(79)
  • 計算機視覺與圖形學(xué)-神經(jīng)渲染專題-第一個基于NeRF的自動駕駛仿真平臺

    計算機視覺與圖形學(xué)-神經(jīng)渲染專題-第一個基于NeRF的自動駕駛仿真平臺

    如今,自動駕駛汽車可以在普通情況下平穩(wěn)行駛,人們普遍認(rèn)識到,真實的 傳感器模擬將在通過模擬解決剩余的極端情況方面發(fā)揮關(guān)鍵作用 。為此,我們提出了一種基于神經(jīng)輻射場(NeRF)的自動駕駛模擬器。與現(xiàn)有作品相比,我們的作品具有三個顯著特點:(1) 實例感知

    2024年02月12日
    瀏覽(24)
  • 計算機圖形學(xué):二維圖形的幾何變換(算法原理及代碼實現(xiàn))

    計算機圖形學(xué):二維圖形的幾何變換(算法原理及代碼實現(xiàn))

    對于一個二維圖形作平移、旋轉(zhuǎn)、放縮變換,可以轉(zhuǎn)換為在二維坐標(biāo)系中圖形的所有點分別可以對應(yīng)到在x,y軸方向分別平移tx,ty(平移)、繞一點旋轉(zhuǎn)固定的角(旋轉(zhuǎn))、在x,y軸方向分別放縮sx,sy倍。 對于變換的原理,只需要將原圖形的點通過極坐標(biāo)或者相加、相乘,再

    2024年02月11日
    瀏覽(94)
  • 計算機圖形學(xué):三次Bezier曲線的繪制(算法原理及代碼實現(xiàn))

    計算機圖形學(xué):三次Bezier曲線的繪制(算法原理及代碼實現(xiàn))

    一、實現(xiàn)方案 ? ? ? ?貝塞爾曲線原理:貝塞爾曲線是計算機圖形圖像造型的基本工具,是圖形造型運用得最多的基本線條之一。它通過控制曲線上的四個點(起始點、終止點以及兩個相互分離的中間點)來創(chuàng)造、編輯圖形。其中起重要作用的是位于曲線中央的控制線。這條

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包