我试图在一堆不同的设备上实时绘制与paperjs相同的元素(路径通过nodejs交换)。
问题:处于纵向模式的智能手机屏幕宽度非常有限。
我找到了拉斐尔的小提琴:
使用
进行调整大小paper.setViewBox(0,0,w,h,true);
paper.setSize('100%', '100%');
这种行为正是我所需要的。 问题:我目前正在使用paper.js,并且不想完全重写我的组件。
有没有办法对paper.js做同样的事情?
答案 0 :(得分:0)
我不知道如何用paperjs做你想做的事。我已经实现了一些在调整画布大小时按比例调整大小的项目,但我这样做:1)将每个元素的大小和位置指定为屏幕大小的一部分,2)在resize事件上重绘画布。
如果我想要一个圆圈放在画布的中心,直径为画布最小尺寸的10%:
var pos = paper.view.bounds.center;
var size = 0.1 * Math.min(
paper.view.size.width,
paper.view.size.height
);
var circle = new paper.Path.Circle({
center: pos,
radius: size/2,
strokeColor: 'black',
strokeWidth: 1
});
您可能还想更改strokeWidth。每次调整画布大小时,你都必须对它进行重绘/重绘。
答案 1 :(得分:0)
您可以在调整大小事件中使用paper.view.scale
和重绘。