2016-09-05 44 views
2

我在縮放Konva.Image時面臨一些挑戰。我想從它的中心點縮放圖像。儘管我能夠從中心擴展它,但我不確定這是否是正確的做法。目前它從top-left角落縮放。要從中心點縮放圖像,我使用image.setOffset()將其設置爲offset。但我不知道它爲什麼在移動圖像。我這樣做: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