1

私はこの(明らかに単純な)問題に苦労してきました:

  • いくつかの座標を持つポイント(実際には、2Dジオメトリで頂点をキャッチして移動できるマウスポイント)があります。たとえば、平面z = 0上のxとyです。
  • 2D 平面を特定の Z に移動することで、ジオメトリをズーム/ズーム解除できるようにしたいと考えています。
  • ジオメトリ ポイントをマウス (ポイント (x, y)) でドラッグできるようにするには、平面が z = -2 であっても、プログラムは z = 0 で頂点座標を受け取る必要があります。例えば。

私は投影について多くを検索し、これらに従おうとしました:

でも欲しいものはなかなか手に入らない…

これが私のコード(Obj-C)ですが、言語に依存しません:

    double width = context.bounds.size.width;
    double height = context.bounds.size.height;

    double alpha = 2. * atan((height / 2.) / fabs(self.inputZ));

    projectedX = self.inputX / (self.inputZ * tan(alpha / 2.));
    projectedY = self.inputY / (self.inputZ * tan(alpha / 2.));

この単純な問題に関するアドバイスをいただければ幸いです。ありがとうございました。

4

1 に答える 1

1

ここで私の答えを見てください。ポイントをスクリーン座標に投影できる移植された glu 関数があります。GLK関数を使用していない場合は、使用しているものに合わせて編集できます。それ以外の場合は、glkitをインポートして数学関数を使用し、そのまま使用できます。

于 2013-03-27T13:37:20.463 に答える