我正在尝试生效,当画布调整大小但是在其上绘制的路径仍然具有相同的宽度。但是它会根据画布宽度改变宽度。我尝试重新绘制路径,但是纸质对象似乎记住了旧的宽度和高度,并且尽管我的新设置应用于路径,但仍然可以缩放路径。 也许解决方案是缩放路径宽度,但我希望有一个更温和的解决方案。
ANSWER 似乎最好的解决方案是缩放路径和形状的宽度和半径。调整大小后绘制新路径时,必须将旧的宽度和高度传递给新的点坐标。 也许这不是一个温和的解决方案,但有效,我看不到另一个。
答案 0 :(得分:3)
您可以告诉画布自动调整大小,请参见此处:
http://paperjs.org/tutorials/getting-started/working-with-paper-js/#canvas-configuration
然后它改变了它的大小,但它不应该缩放内容。您可以在paper.js网站上的所有示例中看到此操作,例如http://paperjs.org/examples/rounded-rectangles/
那些按比例缩放的是以编程方式告知的。
如果你只是用CSS方式缩放画布对象,那么你最终会在鼠标事件中放大像素和错误的偏移。
如果您不想使用resize属性,但仍需要调整画布大小,则可以通过调用paper.view.setViewSize(width, height)
来执行此操作,它将为您调整大小,尊重HiDPI设置和所有。< / p>
答案 1 :(得分:1)
我可能会晚一点,但我最近遇到了同样的问题,我通过在resize
元素上添加canvas
属性来解决它。
<强> HTML 强>
<canvas id="myCanvas" resize="true"></canvas>
不要忘记显式将resize
设置为等于true
(即resize="true"
)。
只需要显示resize属性,或者使用任何其他值,就不会这样做。