设计师编程指南之Sketch插件开发 6

往期文章索引:

1 / 入门基本概念、page的相关操作

2 / artboard 、NSFileManager 和 NSString 关于文件及文件夹的相关操作

3 / DIY一个Sketch插件,生成猫猫狗狗的全家福

4 / NSPasteboard 、text 的操作

5/ Shape 的一些操作,主要介绍 line 及 rect

上一期主要介绍 linerect ,这期介绍 curve

sketchcurve 是通过 NSBezierPath 绘制的,通过3个点(每个点是一个 NSMakePoint 对象 ),绘制一条 bezier path 。

1

熟悉 NSBezierPath

如上图所示的三点,绘制一条 bezier path

var doc=context.document;
var page=doc.currentPage();

var p1=NSMakePoint(0,0);
var p2=NSMakePoint(100,30);
var p3=NSMakePoint(100,100);

//createBezierPath

var nsb=[NSBezierPath bezierPath];    nsb.moveToPoint(p1);    [nsb      curveToPoint:p3      controlPoint1:p1      controlPoint2:p2    ];

var lineShape= [MSShapeGroup new];    lineShape.setBezierPath(nsb);    lineShape.name=(new Date()).getTime().toString();

// add border

var lineShapeStyle = lineShape.style(),    borders = lineShapeStyle.borders();

if (borders.count() <= 0){    lineShapeStyle.addStylePartOfType(1); };

// set border style

var border = borders[0]; border.setColor(MSImmutableColor.colorWithSVGString('black')); border.thickness = 2; page.addLayers([lineShape])

把点的顺序稍微调整下:

nsb.moveToPoint(p1); [nsb   curveToPoint:p1   controlPoint1:p2   controlPoint2:p3 ];

2

动手做实验

我们可以动手绘制玫瑰曲线 Rhodonea Curve:平面内,围绕某一中心点平均分布整数个正弦花瓣的曲线。

写一个 for 循环,把360度范围内的 xy 的坐标求出,然后用 BezierPath 绘制出每个花瓣,实验结果如下:

*

知识星球

更多 sketch 插件的开发,代码的下载,可以在知识星球交流。还包括:

1 看到一些好案例关键技术解决方案,写出文章又不成体系,发星球;

2 我会在知识星球发一些非常机密的研究心得;

3 一些非常有技巧的知识,给付费用户;

4 公众号的迭代版本,针对文章发更为升级、核心的内容。

5 当然,还有资深的专家在星球里。

*

热门文章

DIY一个Sketch插件,生成猫猫狗狗的全家福

我们利用周末尝试了一次CO-CODING活动

全栈设计+编程的方法论,以“猜对联”小程序为例

*

关于公众号:

本公众号定期更新人工智能&设计&科技内容。

谈点设计,敲点代码,偶尔创作点人工智能实验产品

码字不易,开启新的打赏方式:

(0)

相关推荐

  • 今日春分:早长莺飞

    END 获取方法: 扫描下面二维码加入知识星球或小红圈即可 海宁中学地理组(知识星球)

  • 地理实验视频| 地转偏向力演示实验

    END 海宁中学地理组(知识星球)

  • 公众号写了三年,现在能赚多少钱?

    写公众号能不能赚钱,能赚多少钱? 许多读者对这个话题感兴趣,今天就把最真实的情况告诉大家. 能赚钱. 我是18年1月开始玩公众号的,差不多3年时间,现在关注人数还没有突破5万. 公众号主流的赚钱方式有 ...

  • 【NLP】有三AI NLP知识星球来了,仅此一家别无分店

    各位粉丝朋友们,有三AI NLP知识星球新鲜出炉了,这一周开始试运营找节奏. 也许有的朋友会问,既然有了公众号,为什么还要知识星球呢?下面就介绍一下建立知识星球的必要性和优势在哪里? 必要性 常常会有 ...

  • 《 2 0 2 1 》

    作者:星球研究所本文经微信公众号"星球研究所"授权转载2021会是一个怎样的世界?8分钟视频为你呈现.请佩戴耳机,选择全屏超清播放*视频首发于星球研究所旗下公众号"可视化 ...

  • 设计师编程指南之Sketch插件开发 10 - skpm & webview

    往期文章索引: 1 / 入门基本概念.page的相关操作 2 / artboard .NSFileManager 和 NSString 关于文件及文件夹的相关操作 3 / DIY一个Sketch插件, ...

  • 设计师编程指南之Sketch插件开发 9 之 Shape中的oval

    往期文章索引: 1 / 入门基本概念.page的相关操作 2 / artboard .NSFileManager 和 NSString 关于文件及文件夹的相关操作 3 / DIY一个Sketch插件, ...

  • 设计师编程指南之Sketch插件开发 8 之Cocoa基础知识

    往期文章索引: 1 / 入门基本概念.page的相关操作 2 / artboard .NSFileManager 和 NSString 关于文件及文件夹的相关操作 3 / DIY一个Sketch插件, ...

  • 设计师编程指南之Sketch插件开发 7 GUI

    往期文章索引: 1 / 入门基本概念.page的相关操作 2 / artboard .NSFileManager 和 NSString 关于文件及文件夹的相关操作 3 / DIY一个Sketch插件, ...

  • 设计师编程指南之Sketch插件开发 5

    往期文章索引: 1 / 入门基本概念.page的相关操作 2 / artboard .NSFileManager 和 NSString 关于文件及文件夹的相关操作 3 / DIY一个Sketch插件, ...

  • 设计师编程指南之Sketch插件开发 4

    为什么写这个系列的文章,一是因为网上相关的 sketch 插件开发教程太少,官方的文档写得不算太清楚,二是因为本公众号长期在研究智能设计相关的内容,基于 sketch 做一些智能设计的辅助工具也在考虑 ...

  • 设计师编程指南之Sketch插件开发 2

    Sketch 是 Mac 系统才有的软件,可以理解为精简版的 PS ,比 PS 更适合 UI 设计,Sketch  插件开发的语言是类 Javascript ,而 Sketchup 是一款三维建模软件 ...

  • 设计师编程指南之Sketch插件开发 1

    发现网上关于sketch插件开发的指南太少了,而且都不一定可以成功运行,于是我就写了这个系列的文章: 1 我们需要了解的语法特点 sketch 是基于 CocoaScript ,支持在 JS 中调用  ...

  • 数字Numeric与单位units,建筑师编程指南之SketchUp插件开发 4

    在su的开发过程中,对于初学者对单位的处理比较容易犯错,本文举几个代码的简单示例,帮助大家了解su里的Numeric跟单位units的关系. 首先,在su里通过代码画一个点,点的高度为12m,尝试一下 ...