3
关注
1698
浏览

在paperjs中的圆段上绘制线

为什么被折叠? 0 个回复被折叠
你是个好人啦 未验证用户 用户来自于: 广东省
2020-09-15 20:30

设置另一条路径,如同半径为40(50 - 10 = 40)的相同形状的路径。由于您希望10的尖峰)为每个点绘制从路径到路径1的尖峰

最终的代码如下

var path = new Path.RegularPolygon({ 
    center: [100, 100], 
    radius: 50, 
    sides: 10 
}); 
path.style = { 
    fillColor: 'red', 
    strokeColor: null 
} 
path.selected = true; 

/* Add path1 */ 
var path1 = new Path.RegularPolygon({ 
    center: [100, 100], 
    radius: 40, // 50 -10 =40 
    sides: 10 
}); 
path1.style = { 
    strokeColor: 'red' 
} 

for(var i = 0; i < path.segments.length; i++){ 
    spike = new Path(); 
    spike.add(new Point(path.segments[i].point.x, path.segments[i].point.y)); 

    /* end point is on path1 */ 
    spike.add(new Point(path1.segments[i].point.x , path1.segments[i].point.y)); 

    spike.strokeColor = 'black'; 
    spike.strokeWidth = 2.5; 
} 
袁超 未验证用户 用户来自于: 广东省
2020-09-15 17:29

不知道任何paper.js,但就数学去,这里是一个尝试:

var ctr = {x: 100.0, y: 100.0}; 
var rad = 50.0; 
var spikeLen = 10; 

for(var i = 0; i < path.segments.length; i++){ 
    spike = new Path(); 
    var p = { 
    x: path.segments[i].point.x, 
    y: path.segments[i].point.y 
    }; 
    spike.add(new Point(p.x, p.y)); 
    spike.add(new Point(p.x - spikeLen*(ctr.x-p.x)/rad, p.y - spikeLen*(ctr.y-p.y)/rad); 
    spike.strokeColor = 'black'; 
    spike.strokeWidth = 2.5; 
} 

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 15:52
关注人数
3 人关注

相关问题

设计一个类模板,用于存储不同类型的多个无序元素,用sort对数组中的元素进行排序
按自定义角度数据表中的列进行过滤
Javascript - 如何将特定索引中的元素插入到数组的末尾?
数组对象中的数组Javascript
从取消选中的单选按钮删除班级名称
请问如何求出下列excel表格中的数值
如何知道当前页面代码添加到窗口中的对象?
WPS中的CAD怎么打不开?
螺栓中的类型错误CMS
如何将点击我的html文件的图像url传递给view.py中的python函数Django
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号