Pixi.js: 代わりに度を使用するためにラジアンを使用するAPIを作り直します

作成日 2017年06月30日  ·  10コメント  ·  ソース: pixijs/pixi.js

記載されている利点:

  • エンドユーザーAPIを使いやすく
  • ユーザーコードについて推論し、読むのが簡単
  • ラジアン値よりも度の値を保持する方が簡単
  • 他のWebベースおよび他の2Dエンジンとの整合性が向上
Stale 🙏 Feature Request

最も参考になるコメント

たぶんフェイザーのようにそれをしますか? 角度は度、回転はラジアンです。

全てのコメント10件

頭に浮かぶいくつかの短所:

  • 組み込みのJavaScript数学関数はラジアンで標準化されています
  • 組み込みのglsl関数はラジアンで標準化されています
  • ラジアンは、いくつかのタイプの計算を処理するためのより便利な形式です(たとえば、0-> Math.pi * 2からlerpして、時計回りに完全に回転させることができます)。

私は数学の男です。永続性とシェーダー形式の理由から、0..1または0..512のいずれかの度を使用することを好みます。 2年以上前に同じ質問をした場合、数学の意味で「純粋」であるため、ラジアンの方が優れていると言えます。

ただし、2 x Math.PIをファイルに保存することは問題(永続性)であり、「360」は2 * PIよりも書き込みが高速であるため、バイナリ形式で明確に表すことはできません。

フラッシュベースのエンジンは、次のように動作します。

https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Sprite.html#getRotation-

http://cocos2d-x.org/docs/programmers-guide/sprites/index.html

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7def.html

https://www.youtube.com/watch?v=zAsDbHXlFWI

また、Spineのような編集者は、角度をラジアンで処理および保存します。

もう1つの奇妙なことは、グラフィックデザイナーのものであり、数学的な意味で「(shear.y、-shear.x)」であるSKEWを使用することです。このような嫌悪感を許容し、ユーザーに同時にradを使用するように強制します。

「低レベルレンダラー」と「独自のステージとツールをサポートする2Dグラフィックスレンダラー」の競合であり、pixiは2番目に近いと思います。

@englercj私もそのコードで作業する必要があります、私はすでに私のフォークにそのようなものを持っています: https
https://github.com/gameofbombs/gobi/blob/master/src/core/math/FlatTransform2d.ts

@mreinstein pixi変換について何か知っているので、そのコードも確認するように依頼する必要があります;)

@bigtimebuddy@GoodBoyDigitalからの提案により、APIを構成可能にします。

// useDegrees
CONVERSION = Math.PI / 180;

// useRadiens
CONVERSION = 1;

set rotation(rot)
{
    this._rotation = rot * CONVERSION;
}

たぶんフェイザーのようにそれをしますか? 角度は度、回転はラジアンです。

@englercj同意します。 それが最も簡単な方法です。 pixiに基づくエンジンは、「変換」定数を修正するだけです。

@englercj Processingがこれを行いますが、これは本当に悪い設計上の決定だと思います。 それはモジュール性を傷つけます。 ある方法で何かを実行するコードが1つあり、他の方法を想定している別のコード(おそらくライブラリ内)を使用しようとすると、機能しません。 角度関連の関数を呼び出す前に必ず単位モードを設定すると、コードは確実に機能しますが、ライブラリコードが破損する可能性があります。 また、角度を使用するライブラリコードがある場合、角度モードを設定する必要がありますか? これによりコードが意図したとおりに機能することが保証されますが、ユーザーのコードが破損する可能性があります。 これは、囚人のAPI設計のジレンマとほとんど同じです。

@OSUblakeそれはもっと合理的なようです。 角度と回転という名前は、ユニットを明示的に示したり禁止したりするものではありませんが、50/50の推測よりも合理的な関連付けが確実にあります。

angleDegangleRad方がいいと思います。 明示してみませんか?

角度は度、回転はラジアンです。

それはフェイザーがそれを行う方法かもしれませんが、それは普遍的に合意されていません。 回転はアクションであり、角度は発生したアクションの量です。 「回転角」と呼ばれることもあります。 したがって、技術的には、角度または回転は、同じものを参照するために過負荷になる可能性があり、いずれかの単位(度またはラジアン)で表すことができます。

回転を含む数学演算は、ラジアンを使用するとはるかに簡単になります。 把握するのはそれほど難しいことではありません。 Math.PIは円の中間にあります。 Math.PI * 2は完全な回転です。

度数が適切なのは、回転を伴う人々に視覚的なユーザーインターフェイスを公開し、聴衆が基本的なジオメトリを理解していないグループ(つまり、ほとんどの人々)である場合のみです。

私はこれが意見であることを認識していますが、ラジアンで行ってください。 javascriptのすべてのMathAPIは、ほとんどのおもちゃ以外のジオメトリライブラリと同様に、度ではなくラジアンで動作します。

本当にすべての人をサポートする必要がある場合は、 @ 1j01に同意して明示的にします。 たぶん.degreesまたは.radians

この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。

このスレッドは、閉じられた後に最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。

このページは役に立ちましたか?
0 / 5 - 0 評価