-1
私は数学では最善ではないので、を理解してください。どのようにして与えられた変数から縮尺と傾きの値を計算できますか?距離または点からの縮尺と傾きを計算する
- ズーム:ユーザーは、画面上に2本の指を置き、/離れてそれらを一緒に移動します。検出器は、指の間の初期および現在の距離をピクセル単位で報告する。カメラのズームを実装するのに便利です。
- ピンチ:ズームと同様です。検出器は距離の代わりに初期および現在の指の位置を報告します。カメラのズームや回転などのより洗練されたジェスチャーを実装するのに便利です。私は中央にズームてるよう
私の目標は、地図上のピンチとズームイン/ズームアウトすることができることですに/地図の中心からではなく、カメラがチルトアップし、副なければなりませんその逆。
@Override
public boolean zoom (float originalDistance, float currentDistance){
return false;
}
@Override
public boolean pinch (Vector2 initialFirstPointer, Vector2 initialSecondPointer, Vector2 firstPointer, Vector2 secondPointer){
return false;
}
次の方法は私にスケールを聞かせて地図を傾け:
public boolean scaleMap(float scale, float pivotX, float pivotY) {}
public boolean setTilt(float tilt) {}
私はそれに応じて自分のマップを拡張し、更新したいと思いますが、これは動作していないよう:
float yScale = (pointer2.y-initialPointer2.y)/pointer2.y;
changed = mViewport.scaleMap(yScale, 0, 0);
if (changed) {
mMap.updateMap(true);
}
return changed;
EDIT:
前と後の指指の方向との角度差を算出し、回転を得るためにそれを
を使用有益!ズームインに基づいてチルトベースの値を計算する方法について考えていますか?フォーカスポイントを維持しながらズームしながらカメラを少し傾けるようにしたい – Verhelst
中心点が同じままでカメラを傾ける方法がわからない – MBo
私の質問が間違っていました。私はあなたのズームマップに私の地図を傾けたいと思います。私は与えられた値に基づいて地図を傾ける関数tiltMap(浮動移動)を持っています。どのくらいズームしたかに基づいてこの値をどのように計算できるのだろうかと疑問に思っていた – Verhelst