亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? polyfillview.cpp

?? 最近學習計算機圖形學,寫了個多邊形掃描轉換算法,貼出來分享一下
?? CPP
字號:
// PolyFillView.cpp : implementation of the CPolyFillView class
//

#include "stdafx.h"
#include "PolyFill.h"

#include "PolyFillDoc.h"
#include "PolyFillView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPolyFillView

IMPLEMENT_DYNCREATE(CPolyFillView, CView)

BEGIN_MESSAGE_MAP(CPolyFillView, CView)
	//{{AFX_MSG_MAP(CPolyFillView)
		// 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 commands
	ON_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()

/////////////////////////////////////////////////////////////////////////////
// CPolyFillView construction/destruction

CPolyFillView::CPolyFillView()
{
	// TODO: add construction code here

}

CPolyFillView::~CPolyFillView()
{
}

BOOL CPolyFillView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CPolyFillView drawing

void CPolyFillView::OnDraw(CDC* pDC)
{
	CPolyFillDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here

	const int POINTNUM=6;      //多邊形點數.

/******定義結構體用于活性邊表AET和新邊表NET***********************************/
	typedef struct XET
	{
		float x;
		float dx,ymax;
		XET* next;
	}AET,NET;
/******定義點結構體point******************************************************/
	struct point
	{
		float x;
		float y;
	}polypoint[POINTNUM]={250,50,550,150,550,400,250,250,100,350,100,100};//多邊形頂點
	//mypoint[POINTNUM]={100,100,200,100,200,200,100,200};//正方形
	
/******計算最高點的y坐標(掃描到此結束)****************************************/
	int MaxY=0;
	int i;
	for(i=0;i<POINTNUM;i++)
		if(polypoint[i].y>MaxY)
			MaxY=polypoint[i].y;
		
/*******初始化AET表***********************************************************/
		AET *pAET=new AET;
		pAET->next=NULL;
		
/******初始化NET表************************************************************/
		NET *pNET[1024];
		for(i=0;i<=MaxY;i++)
		{
			pNET[i]=new NET;
			pNET[i]->next=NULL;
		}
/******掃描并建立NET表*********************************************************/
		for(i=0;i<=MaxY;i++)
		{
			for(int j=0;j<POINTNUM;j++)
				if(polypoint[j].y==i)
				{					
					if(polypoint[(j-1+POINTNUM)%POINTNUM].y>polypoint[j].y)
					{
						NET *p=new NET;
						p->x=polypoint[j].x;
						p->ymax=polypoint[(j-1+POINTNUM)%POINTNUM].y;
						p->dx=(polypoint[(j-1+POINTNUM)%POINTNUM].x-polypoint[j].x)/(polypoint[(j-1+POINTNUM)%POINTNUM].y-polypoint[j].y);
						p->next=pNET[i]->next;
						pNET[i]->next=p;
						
					}
					if(polypoint[(j+1+POINTNUM)%POINTNUM].y>polypoint[j].y)
					{
						NET *p=new NET;						
						p->x=polypoint[j].x;
						p->ymax=polypoint[(j+1+POINTNUM)%POINTNUM].y;
						p->dx=(polypoint[(j+1+POINTNUM)%POINTNUM].x-polypoint[j].x)/(polypoint[(j+1+POINTNUM)%POINTNUM].y-polypoint[j].y);
						p->next=pNET[i]->next;
						pNET[i]->next=p;
					}
				}
		}
/******建立并更新活性邊表AET*****************************************************/
		for(i=0;i<=MaxY;i++)
		{
	//計算新的交點x,更新AET********************************************************/
			NET *p=pAET->next;
			while(p)
			{
				p->x=p->x + p->dx;
				p=p->next;
			}
	//更新后新AET先排序*************************************************************/
				//斷表排序,不再開辟空間
			AET *tq=pAET;
			p=pAET->next;
			tq->next=NULL;
			while(p)
			{
				while(tq->next && p->x >= tq->next->x)
					tq=tq->next;
				NET *s=p->next;
				p->next=tq->next;
				tq->next=p;
				p=s;
				tq=pAET;
			}
	//(改進算法)先從AET表中刪除ymax==i的結點****************************************/
			AET *q=pAET;
			p=q->next;
			while(p)
			{
				if(p->ymax==i)
				{
					q->next=p->next;
					delete p;
					p=q->next;
				}
				else
				{
					q=q->next;
					p=q->next;
				}
			}
	//將NET中的新點加入AET,并用插入法按X值遞增排序**********************************/
			p=pNET[i]->next;
			q=pAET;
			while(p)
			{
				while(q->next && p->x >= q->next->x)
					q=q->next;
				NET *s=p->next;
				p->next=q->next;
				q->next=p;
				p=s;
				q=pAET;
			}
/******配對填充顏色***************************************************************/
			p=pAET->next;
			while(p && p->next)
			{
				for(float j=p->x;j<=p->next->x;j++)
					pDC->SetPixel(static_cast<int>(j),i,RGB(255,0,0));
				p=p->next->next;//考慮端點情況
			}	
		}
}

/////////////////////////////////////////////////////////////////////////////
// CPolyFillView printing

BOOL CPolyFillView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CPolyFillView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CPolyFillView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CPolyFillView diagnostics

#ifdef _DEBUG
void CPolyFillView::AssertValid() const
{
	CView::AssertValid();
}

void CPolyFillView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CPolyFillDoc* CPolyFillView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPolyFillDoc)));
	return (CPolyFillDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CPolyFillView message handlers

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米亚洲午夜久久精品| 日韩色在线观看| 91香蕉视频黄| 91免费看视频| 91香蕉国产在线观看软件| www.亚洲激情.com| 国产精品一线二线三线| 国产一区二区三区在线看麻豆| 日本 国产 欧美色综合| 日av在线不卡| 韩国精品免费视频| 国产成人免费9x9x人网站视频| 久久精品理论片| 国产精品综合网| 波多野结衣91| 色综合欧美在线视频区| 日本精品一级二级| 欧美三级日韩三级| 678五月天丁香亚洲综合网| 精品视频一区二区不卡| 91精品国产综合久久久蜜臀粉嫩 | 91香蕉视频污| 色噜噜狠狠色综合中国| 欧美日韩一级片在线观看| 91精品国产综合久久久久久久| 精品奇米国产一区二区三区| 精品成人在线观看| 亚洲国产电影在线观看| 亚洲免费观看在线观看| 亚洲超碰97人人做人人爱| 青青青爽久久午夜综合久久午夜| 久久精品二区亚洲w码| 国产福利一区在线观看| 色综合久久中文字幕| 欧美日韩一级视频| 久久夜色精品一区| 1000精品久久久久久久久| 亚洲成人777| 国产精品一品二品| 色综合中文字幕国产 | 精品国产网站在线观看| 久久久噜噜噜久久人人看| 亚洲欧美综合另类在线卡通| 亚洲综合久久av| 精品一区二区影视| 国产福利电影一区二区三区| 色综合久久88色综合天天免费| 欧美精品三级在线观看| 久久久91精品国产一区二区精品| 亚洲日本va在线观看| 丝袜美腿亚洲综合| 成人精品在线视频观看| 一本一道久久a久久精品| 日韩欧美成人午夜| 亚洲男同性恋视频| 精品亚洲国内自在自线福利| 一本色道久久综合亚洲91| 精品久久久久久久久久久院品网| 亚洲欧美在线观看| 国模一区二区三区白浆| 欧美在线观看一二区| 欧美一区二区日韩| 亚洲欧美在线另类| 国产一区二区三区电影在线观看 | 中文字幕精品三区| 日韩精品久久久久久| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 国产一区二区精品在线观看| 欧美色图在线观看| 国产精品麻豆视频| 九九精品视频在线看| 欧美视频一二三区| 亚洲视频网在线直播| 国内精品视频666| 欧美日本一区二区| 亚洲精品国产无天堂网2021 | 色诱视频网站一区| 国产午夜精品理论片a级大结局| 日韩国产精品久久久| 91视视频在线观看入口直接观看www| 精品国产乱码久久久久久免费| 亚洲一区二区三区四区在线免费观看| 风间由美一区二区三区在线观看| 日韩一级精品视频在线观看| 亚洲国产精品久久久久婷婷884| 99久久久久免费精品国产 | 美国十次综合导航| 欧美日韩免费观看一区二区三区| 亚洲欧洲av在线| 成人夜色视频网站在线观看| 久久久久久亚洲综合影院红桃| 日本女优在线视频一区二区| 欧美久久一二区| 亚洲成人在线观看视频| 色久综合一二码| 亚洲精品欧美综合四区| 91网站最新地址| 亚洲欧美自拍偷拍色图| 99久久精品国产一区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产一区二区三区在线观看免费 | 国产一区二区在线观看免费| 欧美一二三在线| 奇米影视一区二区三区小说| 在线91免费看| 日本在线不卡视频一二三区| 欧美精品自拍偷拍| 天堂成人国产精品一区| 91精品国产免费| 美国三级日本三级久久99| 欧美一区二区三区喷汁尤物| 午夜免费欧美电影| 91精品国产入口| 久久成人18免费观看| 久久综合九色综合欧美亚洲| 国产精品18久久久| 1区2区3区欧美| 在线亚洲免费视频| 五月天一区二区三区| 正在播放一区二区| 国产一区二区三区综合| 国产欧美一区二区精品忘忧草| 成人黄色小视频| 亚洲精品乱码久久久久久久久| 欧美色图片你懂的| 美腿丝袜亚洲综合| 2023国产一二三区日本精品2022| 国产精品亚洲а∨天堂免在线| 国产精品美女一区二区三区| 99精品久久久久久| 丝袜a∨在线一区二区三区不卡| 日韩欧美精品在线| 高清在线观看日韩| 亚洲欧美一区二区不卡| 欧美日韩国产美| 国产毛片一区二区| 亚洲人成网站色在线观看 | 亚洲国产精品久久久男人的天堂| 欧美一区二区三区免费视频| 国产乱理伦片在线观看夜一区| 国产精品国产三级国产aⅴ原创| 欧美在线综合视频| 久草在线在线精品观看| 欧美国产精品一区| 欧美日韩国产免费一区二区| 国产在线精品免费| 亚洲黄色免费网站| 欧美v亚洲v综合ⅴ国产v| 91亚洲男人天堂| 美国av一区二区| 亚洲日本电影在线| 精品奇米国产一区二区三区| 91美女精品福利| 精品一区二区国语对白| 亚洲美女免费在线| 亚洲精品在线免费观看视频| 色综合天天狠狠| 精品一区二区三区在线播放视频| 亚洲视频图片小说| 久久婷婷综合激情| 欧美色图激情小说| 成人福利视频在线看| 午夜免费欧美电影| 亚洲欧美日韩成人高清在线一区| 精品久久久久一区二区国产| 色狠狠桃花综合| 国产成人亚洲精品青草天美| 天使萌一区二区三区免费观看| 中文字幕av一区二区三区高| 欧美一区二区免费| 一本一道波多野结衣一区二区| 国产麻豆91精品| 日本不卡免费在线视频| 一级精品视频在线观看宜春院| 久久久精品免费观看| 7777精品伊人久久久大香线蕉最新版| 波多野结衣中文一区| 韩国精品久久久| 日韩经典一区二区| 伊人性伊人情综合网| 中文字幕不卡一区| 久久综合五月天婷婷伊人| 欧美精品在线观看播放| 色综合久久综合网欧美综合网| 国产精品一区专区| 精品在线播放免费| 男女男精品视频网| 亚洲成人综合视频| 亚洲综合图片区| 亚洲黄色免费电影| 中文字幕综合网| 国产精品伦理一区二区| 久久嫩草精品久久久精品 | 久久精品国产一区二区三 | 欧美老肥妇做.爰bbww| 色av一区二区| 色999日韩国产欧美一区二区| 99精品桃花视频在线观看| 风流少妇一区二区| 风间由美一区二区三区在线观看 |