upsidedown

SEM6: CG DDA

Jan 23rd, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. void DDA(float x1,float y1, float x2, float y2, CDC* pDC, COLORREF color)
  2. {
  3.     /*COLORREF SetPixel( int x,  int y,  COLORREF crColor )*/
  4.     float dx,dy,x_inc,y_inc,x,y;
  5.     x=x1;
  6.     y=y1;
  7.     dx=(x2-x1);
  8.     dy=(y2-y1);
  9.  
  10.     int step;
  11.     if(abs(dx)>abs(dy))
  12.         step=abs(dx);
  13.     else
  14.         step=abs(dy);
  15.  
  16.     x_inc=dx/step;
  17.     y_inc=dy/step;
  18.  
  19.     pDC->SetPixel(round(x),round(y),color);
  20.    
  21.  
  22.     for(int i=1; i<=step;i++)
  23.     {
  24.         x+=x_inc;
  25.         y+=y_inc;
  26.         Sleep(0);
  27.         pDC->SetPixel(round(x),round(y),color);
  28.     }
  29.    
  30.    
  31. }
  32.  
  33.  
  34.  
  35.  
  36.  
  37. // CCG_EXPT2View drawing
  38.  
  39. void CCG_EXPT2View::OnDraw(CDC* pDC)
  40. {
  41.     CCG_EXPT2Doc* pDoc = GetDocument();
  42.     ASSERT_VALID(pDoc);
  43.     if (!pDoc)
  44.         return;
  45.    
  46.     DDA(300,300,500,300,pDC,RGB(0,255,255));
  47.     DDA(300,200,500,200,pDC,RGB(0,255,255));
  48.     DDA(300,200,400,350,pDC,RGB(0,255,255));
  49.  
  50.     DDA(400,350,500,200,pDC,RGB(0,255,255));
  51.     DDA(300,300,400,150,pDC,RGB(0,255,255));
  52.     DDA(500,300,400,150,pDC,RGB(0,255,255));
  53.  
  54.    
  55. }
Advertisement
Add Comment
Please, Sign In to add comment