Programming 版 (精华区)
发信人: JJason (C++ Primer), 信区: Programming
标 题: [合集]help: 不用opengl 如何利用颜色渐变来表现立体感
发信站: 哈工大紫丁香 (2002年11月19日10:35:59 星期二), 站内信件
────────────────────────────────────────
sweeting (仙人不闲) 于 2001年09月17日19:54:24 星期一 说道:
我想在vc中,利用颜色的渐变来表现立体感
谁会,教教
比如如何把一个圆利用颜色的渐变来表现一个球
────────────────────────────────────────
ssos (存在与虚无·戒酒戒网) 于 2001年09月17日19:59:17 星期一 说道:
faint
那可很麻烦呀
图书馆有一本书上有源代码
好像叫什么"计算机图形学与应用"什么的
还有一本"真实感图象生成"讲的比较仔细
学府有卖的
────────────────────────────────────────
sweeting (仙人不闲) 于 2001年09月17日20:08:43 星期一 说道:
真的很麻烦码?
我也好像在那里见过,所以想应用一下
我只需要静止的按说不会太难吧
────────────────────────────────────────
ssos (存在与虚无·戒酒戒网) 于 2001年09月17日20:14:53 星期一 说道:
程序好像不多,但是对于每一个点的RGB值都要计算一次
有一个根据光照方向形成RGB值的公式
────────────────────────────────────────
sweeting (仙人不闲) 于 2001年09月17日20:22:35 星期一 说道:
朋友给我一段程序一块看:
void CSphereView::OnDraw(CDC* pDC)
{
CSphereDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->SelectStockObject(NULL_PEN);
COLORREF color=pDoc->m_color;
BYTE byRed=GetRValue(color);
BYTE byGreen=GetGValue(color);
BYTE byBlue=GetBValue(color);
//get the size of the view window
CRect rect;
GetClientRect(&rect);
int nUnits=min(rect.right,rect.bottom);
float fltStepHorz=(float)rect.right/nUnits;
float fltStepVert=(float)rect.bottom/nUnits;
int nEllipse=nUnits/3;
int nIndex;
CBrush brush;
CBrush *pBrushOld;
for(nIndex=0;nIndex<=nEllipse;nIndex++)
{
brush.CreateSolidBrush(RGB(((nIndex*byRed)/nEllipse),
((nIndex*byGreen)/nEllipse),((nIndex*byBlue)/nEllipse)));
pBrushOld=pDC->SelectObject(&brush);
pDC->Ellipse(fltStepHorz*nIndex*2,fltStepVert*nIndex,rect.
right-fltStepHorz*nIndex+1,
rect.bottom-(fltStepVert*nIndex*2)+1);
pDC->SelectObject(pBrushOld);
brush.DeleteObject();
}
}
────────────────────────────────────────
ssos (存在与虚无·戒酒戒网) 于 2001年09月17日20:27:09 星期一 说道:
你试过没有
我看应当生成的是一个颜色渐变的球
────────────────────────────────────────
ssos (存在与虚无·戒酒戒网) 于 2001年09月17日20:34:40 星期一 说道:
我刚刚试过是一个从内到外颜色逐渐变深的球
看起来能够模拟一种角度的光照
────────────────────────────────────────
sweeting (仙人不闲) 于 2001年09月17日20:34:55 星期一 说道:
试过了,是颜色渐变的球,不过由于他一开始先画了一个黑圆
所以最终这个球的边缘是黑色的,稍微难看点
────────────────────────────────────────
sweeting (仙人不闲) 于 2001年09月17日20:35:45 星期一 说道:
速度很快亚
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.572毫秒