【问题标题】:Paper.js change layer coordinate start pointPaper.js 更改图层坐标起点
【发布时间】:2015-05-09 05:08:20
【问题描述】:

每个人。

paper.js 可以从左上角更改图层起始坐标位置吗? 用例:我将图像放入底层并在顶层绘制一些东西。图像可以缩放和移动。我需要让我的绘图路径点在图像坐标系中坐标。我想将我的绘图层坐标设置为图像左上角并移动它然后图像缩放/移动。

我尝试这样做:

var layer = new Layer();
project.activeLayer.setName("DrawingStuff");
project.activeLayer.setPosition(paperjs.project.view.center);
project.activeLayer.bounds.x = 300;
project.activeLayer.bounds.y = 300;
project.activeLayer.bounds.width = raster.width;
project.activeLayer.bounds.height = raster.height;

但它不起作用。名称已设置,但边界和位置仍为空。

非常感谢您的任何建议。

附:我知道我可以重新计算从画布坐标系统到图像坐标系统的路径点,但我想尝试更改图层坐标起点

【问题讨论】:

    标签: javascript paperjs


    【解决方案1】:

    使用当前坐标系并更改项目viewzoomcenter 属性会更容易。看看 http://sketch.paperjs.org 的 main.js 中缩放工具背后的代码:

    var lastPoint;
    var body = $('body');
    zoomTool = new Tool({
        buttonClass: 'icon-zoom'
    }).on({
        mousedown: function(event) {
            if (event.modifiers.space) {
                lastPoint = paper.view.projectToView(event.point);
                return;
            }
            var factor = 1.25;
            if (event.modifiers.option)
                factor = 1 / factor;
            paper.view.zoom *= factor;
            paper.view.center = event.point;
        },
    
        ...
    
        mousedrag: function(event) {
            if (event.modifiers.space) {
                body.addClass('zoom-grab');
                // In order to have coordinate changes not mess up the
                // dragging, we need to convert coordinates to view space,
                // and then back to project space after the view space has
                // changed.
                var point = paper.view.projectToView(event.point),
                    last = paper.view.viewToProject(lastPoint);
                paper.view.scrollBy(last.subtract(event.point));
                lastPoint = point;
            }
        },
        ...
    });
    

    【讨论】:

      猜你喜欢
      • 2020-03-06
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多