当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 贝赛尔曲线的拆分是指将贝赛尔曲线分解成逼近的多边形。
 

 

    摘要: 大家好,我是skyman(sm3d),喜欢三维编程,现在正在系统学习opengl,directx,vr等.我经常到各大论坛上去转转.其中去得最多的地方是nehe的opengl网站(http://nehe.gamedev.net),那是我所见过的最好的学习opengl的网站,强烈推荐!!!这是我的第一篇关于opengl的文章,写得不是很好,欢迎大家指正. 大家知道,在opengl中输出文本......
    摘要: 实现的主要部分代码: #include <setupapi.h>#include <devguid.h>#include <regstr.h>#pragma comment(lib,"setupapi.lib") clistbox m_strlist; ........ 枚举所有硬件设备的主要实现代码: m_strlist.resetconten......


贝赛尔曲线的拆分算法

  贝赛尔曲线的拆分是指将贝赛尔曲线分解成逼近的多边形.可以用来判断贝赛尔曲线的选中,以及显示贝赛尔曲线的旋转效果等.

  贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度.所以本函数的顶点数组的记录方式是:控制点+顶点+控制点+控制点+顶点+控制点+…….所以两个顶点之间的曲线是由两个顶点以及两个顶点之间的控制点来决定的. 【程序编程相关:C++学习笔记-后台服务程序开发模式(四

  贝赛尔曲线简单介绍: 【推荐阅读:C++学习笔记-后台服务程序开发模式(二

  【扩展信息:Microsoft (R) Web 服务

  ==主函数polybeziertopolys==

   typedef carray<cpoint,cpoint> cptarray;//点动态数组类型

 

       bezierpts[in]---贝赛尔曲线顶点与控制点数组

       bclose[in]------是否封闭的贝赛尔曲线

  polypt[out]-----拆分后的多边形点数组

  precision[in]---拆分精度

  bool polybeziertopolys(cptarray &bezierpts,

                     bool bclose,cptarray &polypt,int precision)

  {

       polypt.removeall();

       cptarray apt;

       int i,count = bezierpts.getsize();

  //从1开始,是因为第一个是控制点,如果曲线不封闭,那么第一个控制点是没有用的.

  //每一段贝赛尔曲线由相邻的两个顶点与之间的两个控制点决定,所以频率为3(后一个顶点在下一组中还要使用)

       for(i=1;i<count-2;i+=3){    

       beziertopoly(&bezierpts[i],apt,precision); //拆分每一段

  polypt.append(apt);//拆分完成,加入数组

       }

       //如果是封闭曲线,那么需要将最后一个顶点与第一个顶点以及最后一个控制点以及第一个控制点组成一组进行拆分

       if(bclose){

              cpoint ptbuffer[4];


...   下一页
 ·预测分析法    »显示摘要«
    摘要: 题目: 已知文法g: 试编写一个程序, 判断文法g所能接受的串。 z->aacb | bd a->cd d->abd | d b->bc c->bca | e 以下为stack.h的内容: #include<iostream.h>#define maxsize 40#define increasesize 5/*******......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE