1

特定の度 (図: 15) から X 距離 (図: 45) 離れた度をトラップしようとしています。360/0 ラップアラウンドに巻き込まれています。指定された度数はすべて 0 ~ 360 に正規化されています。誰かがこれを行う方法を教えてもらえますか? 私の不足している適性を示すグラフィックを含めました。

マイケル ジャクソンの墓に誓って、質問する前に Google と StackOverflow に答えを求めました。これはおそらく繰り返しだと思いますが、回答されたものに適切にタグを付けたり、名前を付けたりしてはいけません。

代替テキスト

4

3 に答える 3

2

15+45=60 なのでその辺は右ですが、15-45=-30 なので 360 を足すと 330 になります。

基本的に、[0,360) の外に出るたびに 360 を加算または減算します。ここで、私はオープン範囲に ) を使用しています。

マーカーを青く着色するテストを書きたい場合、たとえば、h が見出し、o がオフセット、x がテスト対象のマーカーであるとします。C っぽい疑似コードで次のようなものを探しています。

t=h-x
if (t>360) {t-=360}
if (t<0) {t+=360}
if (t<o) {mark blue}
于 2010-01-14T11:37:41.717 に答える
1

あなたが何を達成したいのか、100%確信が持てません。あなたが望むのは次のとおりだと思います:「X度について、それから最大でY度離れているすべての度を見つけて、各マークの間にZ度のステップを与えます。」

その場合、XY から X+Y への for ループを Z の増分で記述します。現在の角度値が < 0 の場合は、360 を追加します。

于 2010-01-14T11:32:09.163 に答える
1

単純にモジュロ演算を使用しないのはなぜですか?

deg = deg % 360

于 2010-01-14T12:02:46.757 に答える