2016-09-05 4 views
2

У меня возникли некоторые проблемы при масштабировании Konva.Image. Я хочу масштабировать изображение из его центральной точки. Хотя я могу масштабировать его из центра, но я не уверен, что это правильный способ сделать это или нет. В настоящее время он масштабируется от угла top-left. Чтобы масштабировать изображение из центральной точки, я устанавливаю его offset в центр с помощью image.setOffset(). Но я не знаю, почему он перемещает изображение. Я делаю это:KonvaJS: масштабирование изображения из центра

//setting the offset to center 
    //but don't know why it's moving the image. 
    yoda.setOffset({ 
    x: yoda.width()/2, 
    y: yoda.height()/2 
    }); 
    // setting it's position back to original 
    // position but don't know why I need to 
    // adding the offset values 
    yoda.position({ 
    x: 50 + yoda.width()/2, 
    y: 50 + yoda.height()/2 
    }); 

Чтобы масштабировать изображение, я делаю это:

yoda.scale({ 
      x: 0.5, 
      y: 0.5 
     }); 
     layer.draw(); 

есть ли другой способ достичь того же? Вот игра plunkr.

ответ

1

Ожидаемое поведение Konva узлов. Вы должны использовать offset и {x,y} свойства вместе.

Вы можете избежать использования offset, но в этом случае вам придется изменить {x,y} при масштабировании.

+0

Спасибо lavrton ... Похоже, мне нужно сначала изучить концепцию смещения. У вас есть какая-либо ссылка, которая объясняет это полностью? –

+0

У меня также возникает проблема с установкой смещения в центр, а затем с использованием 'scaleX()' и 'scaleY()'. Я пробовал и пытался. Я просто не могу заставить его работать. – Azevedo

 Смежные вопросы

  • Нет связанных вопросов^_^