计算机图形学自由曲线绘制算法

宁夏师范学院数学与计算机科学学院

《》实验报告

实验序号: 实验项目名称:

学 号姓 名专业、班实验地点指导教师时 间、实验内容与步骤

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相关推荐

  1. DDA画线算法+代码详解-直线扫描算法之一

    #DDA画线算法+代码详解-直线扫描算法之一 本文目录结构如下 1.直线扫描算法简介 2.DDA直线扫描算法 2.1 公式推理 1.求斜率K: 2.当|K| <= 1 时 3.当|K| > ...

  2. 计算机图形学基础教程代码,计算机图形学基础教程

    <计算机图形学基础教程>由会员分享,可在线阅读,更多相关<计算机图形学基础教程(19页珍藏版)>请在人人文库网上搜索. 1.第一章 1. 计算机图形学的主要研究内容是什么? 答 ...

  3. 计算机配色算法代码,计算机配色理论及算法的研究

    摘要: K-M光学模型与色料加和混合模型是计算机配色理论的基础,经调研发现两者在计算机配色的应用中存在一些问题,本文以涤纶平纹织物为基材,对计算配色理论及其算法进行了系统的研究.首先,本文系统分析了K ...

  4. 先来先服务算法代码_一致性哈希算法编写

    今天我想先给大家科普下一致性哈希算法这块,因为我下一篇文章关于缓存的高可用需要用到这个,但是又不能直接在里面写太多的代码以及关于一致性hash原理的解读,这样会失去对于缓存高可用的理解而且会造成文章很 ...

  5. apriori算法代码_sklearn(九)apriori 关联规则算法,以及FP-growth 算法

    是什么: apriori算法是第一个关联规则挖掘算法,利用逐层搜索的迭代方法找出数据库中的项集(项的集合)的关系,以形成规则,其过程由连接(类矩阵运算)与剪枝(去掉没必要的中间结果)组成.是一种挖掘关 ...

  6. matlab中存档算法代码,Matlab中的FCM算法代码及中文详解

    Matlab中的FCM算法代码及中文详解 转自:http://xiaozu.renren.com/xiaozu/106512/336681453 function [center, U, obj_fc ...

  7. matlab多边形扫描线填充算法代码,计算机图形学—多边形扫描与填充

    [实例简介] 包含了AET扫描算法.边界填充法.四连通种子算法 [实例截图] [核心代码] 63815b9f-1212-4c77-8732-11bf70c1ca86 └── 多边形扫描及填充 ├── ...

  8. 计算机图形学曲线生成原理,计算机图形学_曲线及生成.ppt

    计算机图形学_曲线及生成 华中理工大学计算机学院 陆枫 99-7 1999年7月 7.2.1 曲线的表示要求 1)唯一性 2)几何不变性 3)易于定界 4)统一性 5)易于实现光滑连接 6)几何直观 ...

  9. 平移变换计算机图形学c语言代码,计算机图形学第一次作业——平移,缩放和旋转...

    一. MFC 框架下使用 OpenGL 绘图演示平移.旋转.缩放等操作的具体实现 二. 实现算法 绘制的图形以各种顶点及顶点之间的线.面构成 要想对这些图形进行操作,只需要对各种顶点在坐标系中的坐标进 ...

最新文章

  1. jQuery中getJSON跨域原理详解
  2. PostgreSQL在何处处理 sql查询
  3. Origin null is not allowed by Access-Control-Allow-Origin 解决方法
  4. WebConfig Authorization 节点
  5. Spring Cloud 2020年路线图发布,涵盖Spring Boot 2.3、2.4,Spring Cloud Ilford等重磅内容!
  6. iOS之LLDB常用调试命令
  7. c语言入门敲打,C语言基础三(敲打键盘、寻找资料,循环语句)
  8. Spark Master资源调度--worker向master注册
  9. 使用adb工具修改android分辨率
  10. 方差分析MATLAB实现
  11. D盘下的 msdia80.dll 怎么处理?
  12. php codeigniter 语言,CodeIgniter多语言实现方法详解
  13. uniapp自定义车牌号查询输入框
  14. android 动漫头像,动漫卡通头像制作
  15. 微分中值定理之柯西中值定理
  16. [unity3d] iTween文档解析(2) (iTween方法和属性)
  17. 【操作系统-哈工大李治军】---学习笔记(下)---操作系统管理内存
  18. 【ORACLE数据库体系架构】
  19. Java方法excel文件转换成xml文件
  20. Spring Boot 任务调度

热门文章

  1. 快云服务器在哪个文件夹,云服务器的文件在哪个文件夹
  2. 星巴克再携手中国扶贫基金会,启动咖啡产业扶贫二期普洱项目
  3. JAVA虚拟机的性能监控
  4. 骁龙888plus继续用三星5nm,发烧问题能解决吗?
  5. Apriori算法详解
  6. Ubuntu引导修复/Ubuntu的暴力安装方法
  7. 奥鹏计算机英语统考报名,2017年4月大学英语b计算机应用基础统考奥鹏电大最新原.doc...
  8. ZD Soft Screen Recorder 注册汉化版 【好用的屏幕录制软件】
  9. mongodb导入导出数据
  10. c++ string/char* 字符编码转换 (utf8,chs,gbk...)