范文无忧网公文文书入党入团

利用C语言编写能够画出任意斜率的直线算法程序利用中点画线法改

02月10日 编辑 fanwen51.com

[与DDA算法相比中点画线法有什么优点]void DDALine(int x0,int y0,int x1,int y1,int color) { int x; float dx, dy, y, k; dx = x1-x0; dy=y1-y0; k=dy/dx,;y=y0; for (x=x0;x< x1;x++) { drawpixel (x, int(y...+阅读

将DDA算法改成中点划线算法即可// DDA画线View.cpp : implementation of the CDDAView class//#include "stdafx.h"#include "DDA画线.h"#include "DDA画线Doc.h"#include "DDA画线View.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CDDAViewIMPLEMENT_DYNCREATE(CDDAView, CView)BEGIN_MESSAGE_MAP(CDDAView, CView)//{{AFX_MSG_MAP(CDDAView)// NOTE - the ClassWizard will add and remove mapping macros here.// DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSG_MAP// Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CDDAView construction/destructionCDDAView::CDDAView(){ // TODO: add construction code here}CDDAView::~CDDAView(){}BOOL CDDAView::PreCreateWindow(CREATESTRUCT& cs){ // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs);}/////////////////////////////////////////////////////////////////////////////// CDDAView drawingvoid CDDAView::OnDraw(CDC* pDC){ CDDADoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); int xx,yy,x2,y2,m,n; float dx,dy,k,x,y; int x0=50,y0=500,x1=50,y1=50; if(x0>x1) { m=x0;x0=x1;x1=m; m=y0;y0=y1;y1=m; } dx=x1-x0; dy=y1-y0; k=dy/dx; if(x0==x1) { if(y0>y1) { n=y0; y0=y1; y1=n; } for(y2=y0;y2=-1&k

延伸阅读:

图形学中的中点画线法与Bresenham算法画线的区别个人认为最关键的区别就是那个决策参数的计算方式! 在Bresenham算法中,假设我们在(x0,y0)处画了一个点,那我们就要决定下一个点是在(x0+1,y0)还是在(x0+1,y0+1)处画,这两个点一般都不...

编程实现中点画线法的直线的绘制和Bresenham算法的直线绘制点画线法 void MidPoint_Line(x0, y0, x1, y1, color) i nt x0, y0, x1, y1, color; { int a, b, delta1, delta2, d, x, y; a=y0-y1; b=x1-x0; d=2*a+b; delta1=2*a; del...

求中点画线算法的c代码直线方程:a*x+b*y+c=0, p1(x1,y1), p2(x2,y2)==>a=y1-y2;b=x2-x1. 点到直线的距离:distance=|a*x0-b*y0+c|/sqrt(a*a + b*b) 设directionX,directionY分别为从(x1,y1)==>(x2,y2)...

推荐阅读
图文推荐
栏目列表