1.程序中贝塞尔曲线的简单介绍,只介绍曲线部分。
程序中的贝塞尔曲线需要四个点:起始点(startPoint)

,控制点1(controlPoint1),控制点2(controlPoint2),结束点(endPoint)。起始点和结束点确定曲线端点,两个控制点确定曲线形状。
一般sdk中关于贝塞尔曲线api的参数一般有三个:控制点1(controlPoint1),控制点2(controlPoint2),结束点(endPoint)。若贝塞尔曲线作为路径的一部分,则起始点(startPoint)默认为上一段路径的结束点。若贝塞尔曲线作为单独一条路径,则需要为其设置起始点。

2.photoshop中钢笔工具分析。

如图1所示,钢笔工具的画线时点下的点实际包括三个点,

即上图中的锚点、控制点1、控制点2,控制点1和控制点2关于锚点对称。在画布中直接点击而不拖动,会只产生一个点(参看图2绘制直线),可将这一个点理解为上述三个点聚集在了一个点上。
 
 
如图2,绘制直线时,直接点下两点即可。
 
 
 
 
如图3,这是一段关于结束点1(起始点2)

中心对称的贝塞尔曲线。我们知道,程序中绘制贝塞尔曲线需要四个点,而上图中确实出现了四个点,那么是不是就是我们需要的那四个点呢?实验证明不是。直接使用上述四个点作为贝塞尔曲线的四个参数,绘制出的路径只有起始和结束的一小段是和图中路径吻合的。
分析图1时,我们知道,钢笔工具绘制的路径,其上的每一个点均有对应的锚点和控制点。从程序实现角度来看,上面这段曲线要分为两段贝塞尔曲线。第一段曲线的起始点1和控制点11重合,控制点12为“杠杆”的一端,结束点1为杠杆的锚点。
 
 
 
 
如图4,这段曲线由三段贝塞尔曲线组成,红线部分为手动添加,

意在标注第一段曲线的控制点2。

贝塞尔曲线的起始点、控制点与结束点的顺序与曲线形状无关,只是用于标注运动方向。

补充一点:上述的第一起始点和最后结束点,是直接在画布中点击产生的(即图1中的控制点和锚点重合),即图3和图4中的曲线是在图2的基础上增加锚点做成的。

 
 
 
本博客内容均为原创,转载请注明:http://blog.csdn.net/balitaimonk/article/details/9568599

关于photoshop钢笔工具中各点对应到“贝塞尔曲线”中的含义(cocos2d-x与iOS)的更多相关文章

  1. NGUI研究院之在Unity中使用贝塞尔曲线(六)[转]

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...

  2. 在Unity中使用贝塞尔曲线(转)

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...

  3. NGUI研究之在Unity中使用贝塞尔曲线

    鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天由于工作的原因须要将贝塞尔曲线加在project中.那么我迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的随意角度的曲线,这两个点一 ...

  4. 【Unity3d游戏开发】游戏中的贝塞尔曲线以及其在Unity中的实现

    RT,马三最近在参与一款足球游戏的开发,其中涉及到足球的各种运动轨迹和路径,比如射门的轨迹,高吊球,香蕉球的轨迹.最早的版本中马三是使用物理引擎加力的方式实现的足球各种运动,后来的版本中使用了根据物理 ...

  5. 用Canvas实现Photoshop的钢笔工具(贝塞尔曲线)

    前两天在用Canvas实现一个绘制路径的小功能.做完之后发现加以完善可以“复刻”一下PS里面的钢笔工具. PS里的钢笔工具对我来说是PS中最好用的工具! 所以本文主要介绍如何用Canvas来实现Pho ...

  6. Canvas中绘制贝塞尔曲线

    ① 什么是贝塞尔曲线? 在数学的数值分析领域中,贝济埃曲线(英语:Bézier curve,亦作“贝塞尔”)是计算机图形学中相当重要的参数曲线.更高维度的广泛化贝济埃曲线就称作贝济埃曲面,其中贝济埃三 ...

  7. AI: 字体设计中的贝塞尔曲线

    http://www.xueui.cn/tutorials/illustrator-tutorials/designers-must-know-the-secret-of-the-bezier-cur ...

  8. Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

    零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...

  9. Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值

    Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...

随机推荐

  1. 改变navigationbar 标题颜色

    navigationController.navigationBar.titleTextAttributes=@{NSForegroundColorAttributeName:[UIColor yel ...

  2. main函数(本文较老,仅作参考)

    Xcode4.2之前的main函数如下: int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePoo ...

  3. [转载]C#导入XLS数据到数据库

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...

  4. JUnit 4 使用 Java 5 中的注解(annotation)

    JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍@Before:初始化方法@After:释放资源@Test:测试方法, ...

  5. How To Monitor Remote Linux Host using Nagios 3.0

    In the previous post Nagios 3.0 Jumpstart guide , I explained the overview, installation and configu ...

  6. QueryPerformanceFrequency 和 QueryPerformanceCounter用法

    QueryPerformanceFrequency() - 基本介绍 类型:Win32API 原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFr ...

  7. RCC 2014 Warmup (Div. 2) ABC

    题目链接 A. Elimination time limit per test:1 secondmemory limit per test:256 megabytesinput:standard in ...

  8. HDU1411+四面体的体积

    用cos sin各种乱搞之后 求出一个公式.. 但是怕精度损失厉害,还是暂且贴个公式的,copy别人的.. #include<stdio.h> #include<math.h> ...

  9. 李洪强iOS开发本人集成环信的经验总结_09_处理好友请求

    李洪强iOS开发本人集成环信的经验总结_09_处理好友请求 实现这种效果: 01 - 遵守处理好友请求的代理协议 02  - 设置代理 03 - 实现代理方法 04 - 实现代理中用到的方法 

  10. Linux 套接字编程中的 5 个隐患

    http://www.ibm.com/developerworks/cn/linux/l-sockpit/ 在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系 ...