• 大小: 261KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: easyX  Bezier曲线  

资源简介

本资源包含了Bezier曲线和B样条曲面的代码实现,非常美观,还带了排版规整的实验报告,源代码基于c,下载即可运行,欢迎交流,请勿抄袭

资源截图

代码片段和文件信息

//////////////////////////
//程序名称:任意阶Bezier曲线
//功    能:单击左键布点单击右键画Bezier画一次后可继续布点再画双击右键可退出程序

#include 
#include 
#include 
#include 
#include 
using namespace std;

int n=0;
double Points[100][2];

int Mouse_event(); // 鼠标事件 
void initializer(); // 界面初始化
double* Bezier(double tint iint k){ // k阶Bezier 
if(k==0){
return Points[i];
}
double* now_point = new double[2];
double* one=Bezier(tik-1);
double* two=Bezier(ti+1k-1);
now_point[0]=(1.0-t)*one[0]+t*two[0];
now_point[1]=(1.0-t)*one[1]+t*two[1];
return now_point;
}
void PaintBezier(){
double* x0;
double* x1;
for(int i=0 ; i<=50 ; i++){
double t=i/50.0;
if(i==0){
x0=Bezier(t0n-1);
putpixel(int(x0[0])int(x0[1])RED);
}else{
x1=Bezier(t0n-1);
line(int(x0[0])int(x0[1])int(x1[0])int(x1[1]));
x0[0]=x1[0];
x0[1]=x1[1];
}
}
}
void PaintPoints(){
for(int i=0 ; i circle(int(Points[i][0])int(Points[i][1])2);
}
}
int main(){
initializer();

if(!Mouse_event()) return 0;

//停住
getch();
closegraph();
return 0; 
}
void initializer(){
initgraph(800 640);

setbkcolor(WHITE);
setcolor(WHITE);
fillrectangle(00800640);
setcolor(BLACK);
rectangle(00799639);
setcolor(BLACK);
line(08080080);

RECT r1 = {0 0 800 80};
drawtext(_T(“\n单击左键布点\n单击右键画Bezier,画一次后可继续布点再画\n双击右键可退出程序“) &r1 DT_CENTER | DT_VCENTER );


HRGN rgn = CreateRectRgn(1 81 799 639);
// 将该矩形区域设置为裁剪区
setcliprgn(rgn);

setcolor(BLACK);
rectangle(00800640);
setcolor(RED);
}
int Mouse_event(){
MOUSEMSG m; // 定义鼠标消息
while(true)
{
// 获取一条鼠标消息
m = GetMouseMsg();
switch(m.uMsg)
{
case WM_LBUTTONDOWN:

break;

case WM_LBUTTONUP:
Points[n][0]=m.x;
Points[n][1]=m.y;
n++;
BeginBatchDraw();
clearcliprgn();
PaintPoints();
FlushBatchDraw();
EndBatchDraw();
break;

case WM_MOUSEMOVE:

break;

case WM_RBUTTONDOWN:
PaintBezier();
break;

case WM_RBUTTONDBLCLK:
return 0; // 双击鼠标右键退出程序
break;

}
}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2360  2019-05-01 14:33  实验五代码\5-2.cpp
     文件        3779  2019-05-09 17:25  实验五代码\5-4.cpp
     文件      266074  2019-05-10 14:11  实验五报告.docx
     目录           0  2019-05-09 17:45  实验五代码\

评论

共有 条评论