• 大小: 59KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: 直线裁剪  

资源简介

该算法也称为编码算法,对线段的两个端点按所在的区域进行分区编码,根据编码可以迅速地判明全部在窗口内的线段和全部在某边界外侧的线段。

资源截图

代码片段和文件信息

// Bezier.cpp : implementation file
//

#include “stdafx.h“
#include “DrawPix.h“
#include “Bezier.h“

#include “vector“
using namespace std;

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

/////////////////////////////////////////////////////////////////////////////
// Bezier dialog


Bezier::Bezier(CWnd* pParent /*=NULL*/)
: CDialog(Bezier::IDD pParent)
{
//{{AFX_DATA_INIT(Bezier)
m_X = 0;
m_Y = 0;
m_Xfanwei = _T(““);
m_Yfanwei = _T(““);
//}}AFX_DATA_INIT
}


void Bezier::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Bezier)
DDX_Text(pDX IDC_controlX m_X);
DDX_Text(pDX IDC_controlY m_Y);
DDX_Text(pDX IDC_XX m_Xfanwei);
DDX_Text(pDX IDC_YY m_Yfanwei);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Bezier CDialog)
//{{AFX_MSG_MAP(Bezier)
// ON_BN_CLICKED(IDC_store Onstore)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_RBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Bezier message handlers

void Bezier::Onstore() 
{
// TODO: Add your control notification handler code here
int xxyy;
UpdateData(TRUE);
xx=m_X;
yy=m_Y;
Xnum.push_back(xx);
Ynum.push_back(yy);
}



void Bezier::cross(int a int b)
{
pDC->MoveTo(a-3b);
pDC->LineTo(a+3b);
pDC->MoveTo(ab-3);
pDC->LineTo(ab+3);

}

BOOL Bezier::OnInitDialog() 
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
pWnd = GetDlgItem(IDC_DRAWRC);
pDC = pWnd->GetDC();
CRect rc;
pWnd->GetClientRect(rc);
int ab;
xfanwei=a=rc.Width();
yfanwei=b=rc.Height();
CString asbs;
as.Format(“%d“a);
bs.Format(“%d“b);
m_Xfanwei=“X范围是0-“+as+“ “;
m_Yfanwei=“Y范围是0-“+as+“ “;
UpdateData(FALSE);

GetDlgItem(IDC_DRAWRC)->GetWindowRect(&rect);
ScreenToClient(&rect); 

return TRUE;  // return TRUE unless you set the focus to a control
              // EXCEPTION: OCX Property Pages should return FALSE
}


void Bezier::decas(float t)
{
int ri;
float t1;
t1=1.0-t;
CString ss1;
s.Format(“t=%ft1=%f“tt1);
vector  tX;
vector  tY;
for(i=0;i<=Xnum.size();i++)
{
tX.push_back((float)Xnum[i]);
tY.push_back((float)Ynum[i]);
}
for(r=1;r for(i=0;i {
tX[i]=t1*tX[i]+t*tX[i+1];
tY[i]=t1*tY[i]+t*tY[i+1];
}
pX.push_back((int)tX[0]);
pY.push_back((int)tY[0]);
return;

}

void Bezier::onmousemove(UINT nFlags CPoint point) 
{
// TODO: Add your message handler code here and/or call default
point1.x=point.x;
point1.y=point.y;
m_X=point1.x-rect.left;
m_Y=point1.y-rect.top;
if(m_X<0) m_X=0;
if(m_Y<0) m_Y=0;
if(m_X>xfanwei) m_X=xfanwei;
if(m_Y>yfanwei) m_Y=yfanwei;
UpdateData(FALSE);
CDialog::onmousemove(nFlags point);
}

void Bezier::OnLButtonDown(UINT nFlags CPoi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1423  2009-11-18 13:45  直线裁剪\LINEBRES.h

     文件       3603  2009-11-16 21:12  直线裁剪\LINECLIP.cpp

     文件       3462  2009-11-18 13:50  直线裁剪\LINEBRES.cpp

     文件       1532  2009-11-16 19:42  直线裁剪\LINECLIP.h

     文件       4163  2009-11-18 13:58  直线裁剪\DrawPix.clw

     文件       4335  2009-09-22 10:00  直线裁剪\ReadMe.txt

     文件       1367  2009-09-22 10:00  直线裁剪\DrawPix.h

     文件       4227  2009-09-22 10:00  直线裁剪\DrawPix.cpp

     文件       1054  2009-09-22 10:00  直线裁剪\StdAfx.h

     文件        209  2009-09-22 10:00  直线裁剪\StdAfx.cpp

     文件       1871  2009-09-24 10:54  直线裁剪\DrawPixView.h

     文件       1486  2009-09-22 10:00  直线裁剪\DrawPixDoc.h

     文件       1762  2009-09-22 10:00  直线裁剪\DrawPixDoc.cpp

     文件        522  2009-09-22 10:00  直线裁剪\DrawPix.dsw

     文件     132096  2009-11-18 13:58  直线裁剪\DrawPix.ncb

     文件       1440  2009-11-18 13:58  直线裁剪\DrawPix.plg

     文件       1175  2009-09-23 17:16  直线裁剪\LINE.h

     文件       2848  2009-11-17 12:21  直线裁剪\DrawPixView.cpp

     文件       1720  2009-11-17 13:04  直线裁剪\Bezier.h

     文件       3959  2009-11-17 13:46  直线裁剪\Bezier.cpp

     文件       2114  2009-11-18 12:45  直线裁剪\LINE.cpp

     文件       2342  2009-11-18 13:33  直线裁剪\Resource.h

     文件        399  2009-09-22 10:00  直线裁剪\res\DrawPix.rc2

     文件       1078  2009-09-22 10:00  直线裁剪\res\DrawPixDoc.ico

     文件       1078  2009-09-22 10:00  直线裁剪\res\DrawPix.ico

     文件       1078  2009-09-22 10:00  直线裁剪\res\Toolbar.bmp

     文件       1475  2009-11-18 13:57  直线裁剪\MainFrm.h

     文件      47592  2009-11-18 13:57  直线裁剪\DrawPix.aps

     文件      13571  2009-11-18 13:57  直线裁剪\DrawPix.rc

     文件       2628  2009-11-18 13:58  直线裁剪\MainFrm.cpp

............此处省略7个文件信息

评论

共有 条评论