2016-03-31 10 views
0

Ich habe versucht, ein Bild Zoom, Pinch und drehen arbeiten für eine Weile jetzt auf der Grundlage von diesem GitHub-Projekt: https://github.com/vakrilov/native-script-pan-scale-demo/blob/master/app/main-page.js. Aber ich kann die Trigonometrie nicht richtig verstehen. Ich bin mir auch nicht sicher, warum es während der onPinch-Methode eine Übersetzung geben muss.Ich kann nicht Pinch Zoom und rotieren Gesten arbeiten an einem Container in Nativescript

//initial touch during onPinch method 
//args has the touch positions and item is the item to scale 
if (args.state === 1) { 
    var newOriginX = args.getFocusX() - item.translateX; 
    var newOriginY = args.getFocusY() - item.translateY; 

    var oldOriginX = item.originX * item.width; 
    var oldOriginY = item.originY * item.height; 

    item.translateX += (oldOriginX - newOriginX) * (1 - item.scaleX); 
    item.translateY += (oldOriginY - newOriginY) * (1 - item.scaleY); 

    item.originX = newOriginX/item.width; 
    item.originY = newOriginY/item.height; 

    startScale = item.scaleX; 
} 

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Die folgenden Zeilen scheinen für mich zu funktionieren.

var newOriginX = args.getFocusX() - item.translateX; 
var newOriginY = args.getFocusY() - item.translateY; 

var oldOriginX = item.originX * item.width; 
var oldOriginY = item.originY * item.height; 

item.translateX += (oldOriginX - newOriginX) * (1 - item.scaleX); 
item.translateY += (oldOriginY - newOriginY) * (1 - item.scaleY); 

item.originX = newOriginX/item.width; 
item.originY = newOriginY/item.height;