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

  • 大小: 2.28MB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-10-27
  • 語(yǔ)言: C/C++
  • 標(biāo)簽:

資源簡(jiǎn)介

計(jì)算機(jī)圖形學(xué)課程設(shè)計(jì)代碼(運(yùn)用MFC編寫(xiě)的)之真實(shí)感圖形學(xué)

資源截圖

代碼片段和文件信息

/////////////////////////////////////////////////////////////////////////////////
//
//?BLine.cpp:?implementation?of?the?CBLine?class.
#include?“stdafx.h“
#include?“BLine.h“

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBLine::CBLine()
{
}

CBLine::~CBLine()
{
}


//繪制一條直線(xiàn)直線(xiàn)的寬度為1直線(xiàn)的顏色由直線(xiàn)兩個(gè)端點(diǎn)的顏色共同決定
//注意浮點(diǎn)顏色的有效值為[01]區(qū)間內(nèi)的浮點(diǎn)小數(shù)
//與Windows相對(duì)應(yīng)該算法也不包含最后一個(gè)點(diǎn)(x2y2)
//z1z2為當(dāng)前點(diǎn)的深度值
//pCBpZB分別為顏色緩沖和深度緩沖
//注意從(x1y1)--(x2y2)與(x2y2)--(x1y1)略有些許不同.
//評(píng)價(jià):該函數(shù)繪制的直線(xiàn)(像素位置)與Windows的LineTo()函數(shù)繪制的結(jié)果是完全一致的
void?CBLine::Draw(int?x1int?y1??int?x2?int?y2?float?z1?float?z2?FLOATCOLORRGBA?clr1?FLOATCOLORRGBA?clr2?CColorBuffer*?pCB?CZBuffer*?pZB)
{
//兩端點(diǎn)間的水平偏移量和垂直偏移量
int?nDx?=?x2?-?x1;
int?nDy?=?y2?-?y1;

//兩端點(diǎn)間的水平距離和垂直距離
int?nIx?=?ABS(nDx);
int?nIy?=?ABS(nDy);

//描點(diǎn)步數(shù)(增量總值)
int?nInc?=?MAX(nIxnIy);

//直線(xiàn)當(dāng)前點(diǎn)的顏色
float?fPlotR?=?clr1.red?fPlotG?=?clr1.green?fPlotB?=?clr1.blue?fPlotA?=?clr1.alpha;?

////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//主要考察區(qū)開(kāi)始

//緩沖區(qū)中的深度
float?zInBuffer?=?pZB->GetDepth(x1y1);
//當(dāng)前深度
float?z?=?z1;

//如果當(dāng)前點(diǎn)的z坐標(biāo)小于深度緩沖區(qū)中的相同位置z的坐標(biāo)
if(z? {
//在顏色緩沖區(qū)中繪制第一個(gè)點(diǎn)
pCB->SetPixel(x1?y1?fPlotR?fPlotG?fPlotB?fPlotA);?

//重置深度緩沖區(qū)的值
pZB->SetDepth(x1?y1?z);

}

if(nInc?
//沿直線(xiàn)的深度增量
float?fIncZ?=?(z2?-?z1)?/?nInc;

//結(jié)束
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////


//用于判斷是否在nJudgeXnJudgeY方向上向前進(jìn)
int?nJudgeX?=?-nIy?nJudgeY?=?-nIx;

//通過(guò)增量計(jì)算得到的當(dāng)前點(diǎn)
int?x?=?x1?y?=?y1;

//開(kāi)始進(jìn)行增量計(jì)算
//采用Bresenham算法.在這里我們將算法進(jìn)行改進(jìn)
//使其對(duì)于任意斜率的直線(xiàn)都能繪制而且繪制方向始終為從起點(diǎn)繪制到終點(diǎn)

//與Windows相對(duì)應(yīng)該算法也不包含最后一個(gè)點(diǎn)(x2y2)
nInc--;

//注意整數(shù)乘2在計(jì)算機(jī)中采用移位實(shí)現(xiàn)
//Bresenham算法
int?nTwoIx?=?2?*?nIx?nTwoIy?=?2?*?nIy;

//顏色增量
float?fIncR?=?(clr2.red?-?fPlotR)?/?nInc;
float?fIncG?=?(clr2.green?-?fPlotG)?/?nInc;
float?fIncB?=?(clr2.blue?-?fPlotB)?/?nInc;
float?fIncA?=?(clr2.alpha?-?fPlotA)?/?nInc;


//開(kāi)始增量計(jì)算
for(int?i?=?0;i? {
nJudgeX?+=?nTwoIx;
nJudgeY?+=?nTwoIy;

//通過(guò)增量法計(jì)算的當(dāng)前點(diǎn)是否屬于直線(xiàn)上的點(diǎn)
BOOL?bPlot?=?FALSE;

//檢測(cè)?nJudgeX?方向
if(nJudgeX?>=?0)
{
bPlot?=?TRUE;
nJudgeX?-=?nTwoIy;

//將任意走向的直線(xiàn)統(tǒng)一起來(lái)
if(nDx?>?0)x++;
else?if(nDx? }

//檢測(cè)?nJudgeY?方向
if(nJudgeY?>=?0)
{
bPlot?=?TRUE;
nJudgeY?-=?nTwoIx;

//將任意走向的直線(xiàn)統(tǒng)一起來(lái)
if(nDy?>?0)y++;
else?if(nDy? }
//如果當(dāng)前點(diǎn)在直線(xiàn)上
if(bPlot)
{
fPlotR?+=?fIncR;
fPlotG?+=?fIncG;
fPlotB?+=?fIncB;
fPlotA?+=?fIncA;

////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件???????4183??2004-11-28?23:11??真實(shí)感圖形學(xué)\BLine.cpp

?????文件????????554??2004-11-28?23:11??真實(shí)感圖形學(xué)\BLine.h

?????文件??????12025??2004-11-28?23:11??真實(shí)感圖形學(xué)\BRender.cpp

?????文件????????987??2004-11-28?23:11??真實(shí)感圖形學(xué)\BRender.h

?????文件??????15402??2004-11-28?23:11??真實(shí)感圖形學(xué)\BTriangle.cpp

?????文件????????929??2004-11-28?23:11??真實(shí)感圖形學(xué)\BTriangle.h

?????文件???????4834??2004-11-28?23:11??真實(shí)感圖形學(xué)\ColorBuffer.cpp

?????文件???????1181??2004-11-28?23:11??真實(shí)感圖形學(xué)\ColorBuffer.h

?????文件???????7363??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\BLine.obj

?????文件??????33931??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\BRender.obj

?????文件??????18243??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\BTriangle.obj

?????文件??????15285??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\ColorBuffer.obj

?????文件??????28281??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Edge.obj

?????文件??????27824??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Facet.obj

?????文件???????8204??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\FloatColor.obj

?????文件??????21016??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Lighting.obj

?????文件??????10976??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\LightObj.obj

?????文件??????21050??2004-11-28?23:45??真實(shí)感圖形學(xué)\Debug\MainFrm.obj

?????文件???????8000??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Material.obj

?????文件??????42504??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Matrix3d.obj

?????文件??????89044??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\object3d.obj

?????文件??????56337??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Sphere.obj

?????文件?????106155??2004-11-28?22:59??真實(shí)感圖形學(xué)\Debug\StdAfx.obj

?????文件???????4230??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Subobject3d.obj

?????文件???????2161??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\TypedStack.obj

?????文件?????304128??2004-12-06?13:17??真實(shí)感圖形學(xué)\Debug\vc60.idb

?????文件?????389120??2004-12-06?13:17??真實(shí)感圖形學(xué)\Debug\vc60.pdb

?????文件??????26026??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Vector3d.obj

?????文件??????28144??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\Vertex3d.obj

?????文件???????6446??2004-11-28?23:15??真實(shí)感圖形學(xué)\Debug\ViewFinder.obj

............此處省略76個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源