画图已经成为正常的一种
平时, 用惯了API、CDC和封装好的内部函数,关于画线,画圆这些东西都是信手拈来…
最近学习计算机图形学,不得不深入内部研究一下底层算法…
在这里贴几个代码分享一下!
(这里只给出MFC的OnDraw函数)
一、画线的三个算法:
1。DDA(数值微分)法:
void CDDALineView::OnDraw(CDC* pDC)
{
CDDALineDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int x,x0(200),y0(200),x1(500),y1(500);
float dx,dy,y,k;
dx=x1-x0;
dy=y1-y0;
k=dy/dx;
y=y0;
for(x=x0;x<=x1;x++)
{
pDC->SetPixel(x,(int)(y+0.5