资源简介
本资源包含了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 实验五代码\
相关资源
- 上海交大计算机图形学课程视频31集
- 计算机图形学 边填充算法实现代码
- 计算机图形学课设 画板
- 简易绘图程序(计算机图形学课程设
- 计算机图形学(openGL)代码
- 图形学集成程序dda、中点算法、多边
- 计算机图形实验(哈尔滨工程大学)
- 计算机图形学-全.rar
- 警察抓小偷游戏 x86版
- 7-Uath茶壶
- 计算机图形学考试试卷试题6套含3套的
- GPU精粹1-中文版.pdf《GPU精粹:实时图形
- 计算机图形学 基于3D图形开发技术
- 3D游戏与计算机图形学中的数学方法
- 虚拟现实技术文献英文
- 华南理工大学软件学院计算机图形学
- GPU+编程与CG+语言之阳春白雪下里巴人
- 计算机图形学实验 opengl实现太阳系运
- 中国科学技术大学计算机图形学大作
- 计算机图形学的实习
- 计算机图形大作业opengl-物联网.rar
- 计算机图形学 z-buffer
- 计算机图形学经典论文计算机图形学
- 计算机图形学几何工具算法详解
- 广东工业大学 各年 计算机图形学最全
- 交互式计算机图形学 基于WEBGL的自顶
- 清华大学版计算机图形学
- 计算机图形学 边界定义的8连通区域
- 实验一 OpenGL 程序设计基础
- 计算机图形学与几何造型导论 英文版
评论
共有 条评论