Panzoom.js и paper.js, компенсирующие точку для масштаба

Намерение состоит в том, чтобы разместить изображение на холсте и рисовать на нем, одновременно используя возможности панорамирования и масштабирования. Я использую panzoom.js и paper.js

Что работает.... Я могу панорамировать и масштабировать холст. Я могу рисовать на холстах

Что не работает... как только я изменяю масштаб изображения - дела идут плохо. бумажная "точка" больше не соответствует стрелке мыши. после увеличения какой-то фактор кажется отключенным, а то, что нарисовано на экране, находится на некотором расстоянии от указателя

Как мне компенсировать точку paper.js для коэффициента масштабирования на холсте?

HTML

<div id="container">
    <canvas id="myImage" width="612" height="792px">
        <img id="page" src="page.png" width="100%" height="100%">
    </canvas>
</div>
<img id="first" src="page.png" width="612" height="792" style="display:none">

Для panzoom.js..

var $panzoom = $('#myImage').panzoom();

$panzoom.parent().on('mousewheel.focal', function( e ) {
    e.preventDefault();
    var delta = e.delta || e.originalEvent.wheelDelta;
    var zoomOut = delta ? delta < 0 : e.originalEvent.deltaY > 0;
    $panzoom.panzoom('zoom', zoomOut, {
        increment: 0.1,
        animate: false,
        focal: e
    });
  });

и для paper.js...

<script type="text/paperscript" canvas="myImage">

var raster = new Raster('first');
raster.position = view.center;
raster.scale(1);

tool.maxDistance = 10;

function onMouseDrag(event) {
    var circle = new Path.Circle({
        center: event.middlePoint,
        radius: event.delta.length / 2
    });
    circle.fillColor = 'black';
}

0 ответов

Другие вопросы по тегам