91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 19.53MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-08-05
  • 語言: 其他
  • 標簽: OpenGL??Sphere??VS2013??

資源簡介

這是一個利用VS2013開發的OpenGL小程序,通過自己編寫函數實現三維的球體的繪制。主要涉及的知識點有:全屏切換,鍵盤響應以及場景繪制。里面包含所有的源碼以及注解,如果有OpenGL的環境以及相應的庫文件是可以直接運行的。如果想自己創建項目進行編寫,另外還需要額外配置的是:右鍵項目名->配置屬性->鏈接器->輸入->附加依賴項->添加opengl32.lib glu32.lib。利用OpenGL自編程實現球體源碼——網格小demo

資源截圖

代碼片段和文件信息

#include?“stdafx.h“

#pragma?warning(disable:4305)?//禁止將單精度浮點數轉化為雙精度浮點數

enum?Ref_Plain?{?XOY?YOZ?XOZ?};

struct?Vertex{
float?x?y?z;
};

struct?HalfQuarterSphere{
Vertex?topVertex;//?1/8圓的穹頂點
Vertex?**pVertexs;//其余頂點
int?numCircles;//緯線數量
int?numLine;//經線數量連接南北兩極
float?radius;//半徑
};

HalfQuarterSphere?hqSphere;

void?generateHalfQuarterSphere(int?numCir/*緯線數*/?int?numLin/*經線數*/?HalfQuarterSphere?&hqSphere?float?R){//生成1/8球體所有的頂點
hqSphere.numCircles?=?numCir;
hqSphere.numLine?=?numLin;
hqSphere.radius?=?R;
hqSphere.topVertex.z?=?R;
hqSphere.topVertex.x?=?hqSphere.topVertex.y?=?0;
//申請內存塊
hqSphere.pVertexs?=?new?Vertex*[numCir];
for?(int?i?=?0;?i? hqSphere.pVertexs[i]?=?new?Vertex[numLin];
}
float?cirAngleSegment?=?HALF_PI?/?(numLin?-?1);//每道緯線的間距
float?cirAngleOffset?=?0;
float?zOffset?=?0;
float?angleOffset?=?0;
float?linAngleSegment?=?HALF_PI?/?(numCir?-?1);//每道相鄰經線在XOY平面投影線的夾角

//初始化緯線與XOZ平面的交點
float?curR?=?0;
int?boundLine?=?numLin?-?1;
for?(int?i?=?numCir?-?1;?i?>=?0;?i--){
zOffset?=?R*sin(angleOffset);
//初始化當前緯線與始經線,末經線的交點
curR?=?hqSphere.pVertexs[i][0].x?=?hqSphere.pVertexs[i][boundLine].y?=?sqrt(R*R?-?zOffset*zOffset);
hqSphere.pVertexs[i][0].y?=?hqSphere.pVertexs[i][boundLine].x?=?0;
hqSphere.pVertexs[i][0].z?=?hqSphere.pVertexs[i][boundLine].z?=?zOffset;
cirAngleOffset?=?cirAngleSegment;
//初始化當前緯線與其余經線的交點
for(int?j?=?1;?j? hqSphere.pVertexs[i][j].x?=?curR*cos(cirAngleOffset);
hqSphere.pVertexs[i][j].y?=?curR*sin(cirAngleOffset);
hqSphere.pVertexs[i][j].z?=?zOffset;
cirAngleOffset?+=?cirAngleSegment;
}
angleOffset?+=?linAngleSegment;
}
}

void?flipHalfQuarterSphere(HalfQuarterSphere?&hqSphere?Ref_Plain?rp){
switch?(rp){
case?XOY://Z坐標取反
hqSphere.topVertex.z?=?-hqSphere.topVertex.z;
for?(int?i?=?0;?i? for?(int?j?=?0;?j? hqSphere.pVertexs[i][j].z?=?-hqSphere.pVertexs[i][j].z;
}
}
break;
case?YOZ://X坐標取反
hqSphere.topVertex.x?=?-hqSphere.topVertex.x;
for?(int?i?=?0;?i? for?(int?j?=?0;?j? hqSphere.pVertexs[i][j].x?=?-hqSphere.pVertexs[i][j].x;
}
}
break;
case?XOZ://Y坐標取反
hqSphere.topVertex.y?=?-hqSphere.topVertex.y;
for?(int?i?=?0;?i? for?(int?j?=?0;?j? hqSphere.pVertexs[i][j].y?=?-hqSphere.pVertexs[i][j].y;
}
}
break;
}
}

void?renderHalfQuarterSphere(const?HalfQuarterSphere?&hqSphere){//繪制1/8球
glBegin(GL_TRIANGLE_FAN);//以穹點為中心畫三角形扇
glNormal3f(hqSphere.topVertex.x?hqSphere.topVertex.y?hqSphere.topVertex.z);
glVertex3f(hqSphere.topVertex.x?hqSphere.topVertex.y?hqSphere.topVertex.z);
for?(int?i?=?0;?i? glNormal3f(hqSphere.pVertexs[0][i].x?hqSphere.pVertexs[0][i].y?hqSphere.pVertexs[0][i].z);
glVertex

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6354??2019-03-12?18:18??Sphere\Sphere\CGfxOpenGL.cpp
?????目錄???????????0??2019-03-12?18:17??Sphere\
?????目錄???????????0??2019-03-11?19:50??Sphere\Debug\
?????文件???????56320??2019-03-12?18:16??Sphere\Debug\Sphere.exe
?????文件??????531596??2019-03-12?18:16??Sphere\Debug\Sphere.ilk
?????文件?????1371136??2019-03-12?18:16??Sphere\Debug\Sphere.pdb
?????目錄???????????0??2019-03-12?18:17??Sphere\Sphere\
?????文件?????????411??2019-03-11?19:10??Sphere\Sphere\CGfxOpenGL.h
?????目錄???????????0??2019-03-12?18:16??Sphere\Sphere\Debug\
?????文件???????26377??2019-03-12?18:16??Sphere\Sphere\Debug\CGfxOpenGL.obj
?????文件????????1150??2019-03-11?19:50??Sphere\Sphere\Debug\Sphere.Build.CppClean.log
?????文件????????1791??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.log
?????文件???????17888??2019-03-12?15:56??Sphere\Sphere\Debug\Sphere.obj
?????文件?????7471104??2019-03-11?19:50??Sphere\Sphere\Debug\Sphere.pch
?????文件????????6776??2019-03-11?19:50??Sphere\Sphere\Debug\Sphere.res
?????目錄???????????0??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\
?????文件???????14676??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\CL.read.1.tlog
?????文件????????1978??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\CL.write.1.tlog
?????文件?????????161??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\Sphere.lastbuildstate
?????文件????????2040??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\cl.command.1.tlog
?????文件????????1552??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\link.command.1.tlog
?????文件????????3318??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\link.read.1.tlog
?????文件?????????706??2019-03-12?18:16??Sphere\Sphere\Debug\Sphere.tlog\link.write.1.tlog
?????文件?????????464??2019-03-11?19:50??Sphere\Sphere\Debug\Sphere.tlog\rc.command.1.tlog
?????文件????????2584??2019-03-11?19:50??Sphere\Sphere\Debug\Sphere.tlog\rc.read.1.tlog
?????文件?????????202??2019-03-11?19:50??Sphere\Sphere\Debug\Sphere.tlog\rc.write.1.tlog
?????文件??????240121??2019-03-11?19:50??Sphere\Sphere\Debug\stdafx.obj
?????文件??????437248??2019-03-12?18:16??Sphere\Sphere\Debug\vc120.idb
?????文件??????552960??2019-03-12?18:16??Sphere\Sphere\Debug\vc120.pdb
?????文件????????2244??2019-03-11?19:09??Sphere\Sphere\ReadMe.txt
?????文件?????????716??2019-03-11?19:09??Sphere\Sphere\Resource.h
............此處省略16個文件信息

評論

共有 條評論