计算机图形学曲线算法代码,计算机图形学自由曲线绘制算法.doc
计算机图形学自由曲线绘制算法
宁夏师范学院数学与计算机科学学院
《》实验报告
实验序号: 实验项目名称:
学 号姓 名专业、班实验地点指导教师时 间、实验内容与步骤
1 //TestView.h
class CTestView : public CView …….
protected:
bool Flag;//标志
CPoint *pt;//顶点
int CtrlPoint;//控制多边形顶点
…….. 2 //TestView.cpp
#include "math.h"//数学头文件
#define N_MAX_POINT 10//控制多边形的最大顶点数
#define ROUND a int a+0.5 //四舍五入
。。。。。。
CTestView::CTestView Flag false; void CTestView::OnMENUBezierCurve // TODO: Add your command handler code here
RedrawWindow ;
AfxGetMainWnd - SetWindowText "三次Bezier曲线" ;//显示标题
MessageBox "单击左键绘制控制多边形,单击右键绘制曲线","提示",MB_OK ;
pt new CPoint[N_MAX_POINT];
Flag true;CtrlPoint 0; void CTestView::DrawBezier //绘制Bezier曲线 CClientDC dc this ;
double x,y;
int rate 800,n;
n CtrlPoint-1;
for double t 0;t 1;t+ 1.0/rate x 0;y 0;
for int i 0;i n;i++ x+ pt[i].x*Cnk n,i *pow t,i *pow 1-t,n-i ; y+ pt[i].y*Cnk n,i *pow t,i *pow 1-t,n-i ; dc.SetPixel ROUND x ,ROUND y ,RGB 255,0,255 ;//曲线颜色 double CTestView::Cnk const int &n, const int &i //Bernstein第一项 return double Factorial n / Factorial i *Factorial n-i ; int CTestView::Factorial int m //阶乘函数 int f 1;
for int i 1;i m;i++ f* i;
return f; void CTestView::DrawCharPolygon //绘制控制多边形 CClientDC dc this ;
CPen MyPen,*pOldPen;
MyPen.CreatePen PS_SOLID,3,RGB 0,255,0 ;//控制多边形
pOldPen dc.SelectObject &MyPen ;
for int i 0;i CtrlPoint;i++ if i 0 dc.MoveTo pt[i] ; dc.Ellipse pt[i].x-2,pt[i].y-2,pt[i].x+2,pt[i].y+2 ; else dc.LineTo pt[i] ; dc.Ellipse pt[i].x-2,pt[i].y-2,pt[i].x+2,pt[i].y+2 ; dc.SelectObject pOldPen ;
MyPen.DeleteObject ; void CTestView::OnLButtonDown UINT nFlags, CPoint point //获得屏幕控制点坐标 // TODO: Add your message handler code here and/or call default
CView::OnLButtonDown nFlags, point ;
if Flag pt[CtrlPoint].x point.x;
pt[CtrlPoint].y point.y;
if CtrlPoint N_MAX_POINT CtrlPoint++;
else Flag false;
DrawCharPolygon ; void CTestView::OnRButtonDown UINT nFlags, CPoint point //调用绘制函数 // TODO: Add your message handler code here and/or call default
Flag false;
DrawBezie
计算机图形学曲线算法代码,计算机图形学自由曲线绘制算法.doc相关推荐
- DDA画线算法+代码详解-直线扫描算法之一
#DDA画线算法+代码详解-直线扫描算法之一 本文目录结构如下 1.直线扫描算法简介 2.DDA直线扫描算法 2.1 公式推理 1.求斜率K: 2.当|K| <= 1 时 3.当|K| > ...
- 计算机图形学基础教程代码,计算机图形学基础教程
<计算机图形学基础教程>由会员分享,可在线阅读,更多相关<计算机图形学基础教程(19页珍藏版)>请在人人文库网上搜索. 1.第一章 1. 计算机图形学的主要研究内容是什么? 答 ...
- 计算机配色算法代码,计算机配色理论及算法的研究
摘要: K-M光学模型与色料加和混合模型是计算机配色理论的基础,经调研发现两者在计算机配色的应用中存在一些问题,本文以涤纶平纹织物为基材,对计算配色理论及其算法进行了系统的研究.首先,本文系统分析了K ...
- 先来先服务算法代码_一致性哈希算法编写
今天我想先给大家科普下一致性哈希算法这块,因为我下一篇文章关于缓存的高可用需要用到这个,但是又不能直接在里面写太多的代码以及关于一致性hash原理的解读,这样会失去对于缓存高可用的理解而且会造成文章很 ...
- apriori算法代码_sklearn(九)apriori 关联规则算法,以及FP-growth 算法
是什么: apriori算法是第一个关联规则挖掘算法,利用逐层搜索的迭代方法找出数据库中的项集(项的集合)的关系,以形成规则,其过程由连接(类矩阵运算)与剪枝(去掉没必要的中间结果)组成.是一种挖掘关 ...
- matlab中存档算法代码,Matlab中的FCM算法代码及中文详解
Matlab中的FCM算法代码及中文详解 转自:http://xiaozu.renren.com/xiaozu/106512/336681453 function [center, U, obj_fc ...
- matlab多边形扫描线填充算法代码,计算机图形学—多边形扫描与填充
[实例简介] 包含了AET扫描算法.边界填充法.四连通种子算法 [实例截图] [核心代码] 63815b9f-1212-4c77-8732-11bf70c1ca86 └── 多边形扫描及填充 ├── ...
- 计算机图形学曲线生成原理,计算机图形学_曲线及生成.ppt
计算机图形学_曲线及生成 华中理工大学计算机学院 陆枫 99-7 1999年7月 7.2.1 曲线的表示要求 1)唯一性 2)几何不变性 3)易于定界 4)统一性 5)易于实现光滑连接 6)几何直观 ...
- 平移变换计算机图形学c语言代码,计算机图形学第一次作业——平移,缩放和旋转...
一. MFC 框架下使用 OpenGL 绘图演示平移.旋转.缩放等操作的具体实现 二. 实现算法 绘制的图形以各种顶点及顶点之间的线.面构成 要想对这些图形进行操作,只需要对各种顶点在坐标系中的坐标进 ...
最新文章
- jQuery中getJSON跨域原理详解
- PostgreSQL在何处处理 sql查询
- Origin null is not allowed by Access-Control-Allow-Origin 解决方法
- WebConfig Authorization 节点
- Spring Cloud 2020年路线图发布,涵盖Spring Boot 2.3、2.4,Spring Cloud Ilford等重磅内容!
- iOS之LLDB常用调试命令
- c语言入门敲打,C语言基础三(敲打键盘、寻找资料,循环语句)
- Spark Master资源调度--worker向master注册
- 使用adb工具修改android分辨率
- 方差分析MATLAB实现
- D盘下的 msdia80.dll 怎么处理?
- php codeigniter 语言,CodeIgniter多语言实现方法详解
- uniapp自定义车牌号查询输入框
- android 动漫头像,动漫卡通头像制作
- 微分中值定理之柯西中值定理
- [unity3d] iTween文档解析(2) (iTween方法和属性)
- 【操作系统-哈工大李治军】---学习笔记(下)---操作系统管理内存
- 【ORACLE数据库体系架构】
- Java方法excel文件转换成xml文件
- Spring Boot 任务调度
热门文章
- 快云服务器在哪个文件夹,云服务器的文件在哪个文件夹
- 星巴克再携手中国扶贫基金会,启动咖啡产业扶贫二期普洱项目
- JAVA虚拟机的性能监控
- 骁龙888plus继续用三星5nm,发烧问题能解决吗?
- Apriori算法详解
- Ubuntu引导修复/Ubuntu的暴力安装方法
- 奥鹏计算机英语统考报名,2017年4月大学英语b计算机应用基础统考奥鹏电大最新原.doc...
- ZD Soft Screen Recorder 注册汉化版 【好用的屏幕录制软件】
- mongodb导入导出数据
- c++ string/char* 字符编码转换 (utf8,chs,gbk...)