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

  • 大小: 2.3MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-30
  • 語言: 其他
  • 標簽:

資源簡介

真實感圖形學是計算機圖形學中的一個重要組成部分。本程序是學習關于生成三位場景的真實感圖像的。

資源截圖

代碼片段和文件信息

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

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

CBLine::CBLine()
{
}

CBLine::~CBLine()
{
}


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

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

//描點步數(增量總值)
int?nInc?=?MAX(nIxnIy);

//直線當前點的顏色
float?fPlotR?=?clr1.red?fPlotG?=?clr1.green?fPlotB?=?clr1.blue?fPlotA?=?clr1.alpha;?

////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//主要考察區開始

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

//如果當前點的z坐標小于深度緩沖區中的相同位置z的坐標
if(z? {
//在顏色緩沖區中繪制第一個點
pCB->SetPixel(x1?y1?fPlotR?fPlotG?fPlotB?fPlotA);?

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

}

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

//結束
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////


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

//通過增量計算得到的當前點
int?x?=?x1?y?=?y1;

//開始進行增量計算
//采用Bresenham算法.在這里我們將算法進行改進
//使其對于任意斜率的直線都能繪制而且繪制方向始終為從起點繪制到終點

//與Windows相對應該算法也不包含最后一個點(x2y2)
nInc--;

//注意整數乘2在計算機中采用移位實現
//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;


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

//通過增量法計算的當前點是否屬于直線上的點
BOOL?bPlot?=?FALSE;

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

//將任意走向的直線統一起來
if(nDx?>?0)x++;
else?if(nDx? }

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

//將任意走向的直線統一起來
if(nDy?>?0)y++;
else?if(nDy? }
//如果當前點在直線上
if(bPlot)
{
fPlotR?+=?fIncR;
fPlotG?+=?fIncG;
fPlotB?+=?fIncB;
fPlotA?+=?fIncA;

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

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4183??2004-11-28?23:11??真實感圖形學\BLine.cpp

?????文件????????554??2004-11-28?23:11??真實感圖形學\BLine.h

?????文件??????12025??2004-11-28?23:11??真實感圖形學\BRender.cpp

?????文件????????987??2004-11-28?23:11??真實感圖形學\BRender.h

?????文件??????15402??2004-11-28?23:11??真實感圖形學\BTriangle.cpp

?????文件????????929??2004-11-28?23:11??真實感圖形學\BTriangle.h

?????文件???????4834??2004-11-28?23:11??真實感圖形學\ColorBuffer.cpp

?????文件???????1181??2004-11-28?23:11??真實感圖形學\ColorBuffer.h

?????文件???????7363??2004-11-28?23:15??真實感圖形學\Debug\BLine.obj

?????文件??????33931??2004-11-28?23:15??真實感圖形學\Debug\BRender.obj

?????文件??????18243??2004-11-28?23:15??真實感圖形學\Debug\BTriangle.obj

?????文件??????15285??2004-11-28?23:15??真實感圖形學\Debug\ColorBuffer.obj

?????文件??????28281??2004-11-28?23:15??真實感圖形學\Debug\Edge.obj

?????文件??????27824??2004-11-28?23:15??真實感圖形學\Debug\Facet.obj

?????文件???????8204??2004-11-28?23:15??真實感圖形學\Debug\FloatColor.obj

?????文件??????21016??2004-11-28?23:15??真實感圖形學\Debug\Lighting.obj

?????文件??????10976??2004-11-28?23:15??真實感圖形學\Debug\LightObj.obj

?????文件??????21050??2004-11-28?23:45??真實感圖形學\Debug\MainFrm.obj

?????文件???????8000??2004-11-28?23:15??真實感圖形學\Debug\Material.obj

?????文件??????42504??2004-11-28?23:15??真實感圖形學\Debug\Matrix3d.obj

?????文件??????89044??2004-11-28?23:15??真實感圖形學\Debug\object3d.obj

?????文件??????56337??2004-11-28?23:15??真實感圖形學\Debug\Sphere.obj

?????文件?????106155??2004-11-28?22:59??真實感圖形學\Debug\StdAfx.obj

?????文件???????4230??2004-11-28?23:15??真實感圖形學\Debug\Subobject3d.obj

?????文件???????2161??2004-11-28?23:15??真實感圖形學\Debug\TypedStack.obj

?????文件?????304128??2010-06-04?13:05??真實感圖形學\Debug\vc60.idb

?????文件?????389120??2004-12-06?13:17??真實感圖形學\Debug\vc60.pdb

?????文件??????26026??2004-11-28?23:15??真實感圖形學\Debug\Vector3d.obj

?????文件??????28144??2004-11-28?23:15??真實感圖形學\Debug\Vertex3d.obj

?????文件???????6446??2004-11-28?23:15??真實感圖形學\Debug\ViewFinder.obj

............此處省略76個文件信息

評論

共有 條評論