2次元配列の四角い部分をループするのは簡単ですが、円形の部分をどのようにループしますか?2d配列の値の円をどのようにループしますか?
答えて
私がこれをやったやり方は、2dアレイを普通にループするのと同じように、2回for-loopをすることです。しかし、このループの中で、問題の配列要素が距離式を使って半径rの円内にあるかどうかを確認してください。例えば
、(x、y)に10×10のアレイ、およびアレイの選択された "中心" を与えられた:
for i from 0 to 9 {
for j from 0 to 9 {
a = i - x
b = j - y
if a*a + b*b <= r*r {
// Do something here
}
}
}
を(コードだけ擬似コードではなく、任意の特定の言語です)。
ニース擬似コード;中括弧を削除してください。有効なLiveScript(: –
私はあなたが心の中でこのような何か
[ ][ ][x][0][ ][ ]
[ ][x][ ][ ][1][ ]
[9][ ][ ][ ][ ][2]
[8][ ][ ][ ][ ][3]
[ ][7][ ][ ][4][ ]
[ ][ ][6][5][ ][ ]
それがそうであるならば、あなたはいくつかの基本的な三角法を使用する必要がありますがありgussingよ。 角度のステップが偶数のステップに対応しないため、次の値を取得して別の配列に追加するまで(または新しい配列に[i、j]座標を追加するまで)、trigを使用して角度を前進させます。
trig関数(これは高価です)を使うか、円の方程式を使うよりも、はるかに優れています。これは最終的には高価な平方根を必要とします。ここでの主題に捧げられるページがあり
は:
http://www.cs.unc.edu/~mcmillan/comp136/Lecture7/circle.html
本質的にはその答えは、あなたが円の開始点と終了点は、あなたの配列の各行にあるかを把握したいということです。これを行うには、前の行からの「オフセット」、すなわち前の行の開始点からの「差」(および同様に終点について)を計算する。
この差は、微係数を使用して数学的に計算できます。改良は、二重微分を用いて連続する差の差を計算することである。
とにかく、この抽象的な数学的アイデアは、Bresenehanサークルアルゴリズムと呼ばれるミッドポイントサークルアルゴリズムにつながります。 2次元配列の
- 1. Ruby:2D配列をどのように印刷しますか?
- 2. (TypeScript2)インターフェイスタイプの配列をどのようにループしますか?
- 3. 多次元配列をどのようにループしますか?
- 4. 2dオブジェクト配列へのループ
- 5. ループを使用してC++の1D配列から2D配列に値を追加します
- 6. 2D配列を別の2D配列に挿入するにはどうすればよいですか? (Ruby)
- 7. ajaxのループ配列はどのようにします
- 8. どのようにループ配列
- 9. ブール値の行の2D配列を使用して別の2D配列をフィルタリングするにはどうすればよいですか?
- 10. PHP - 2D配列 - 配列キーをループしてその値を取得していますか?
- 11. どのように複数の配列を並列にループできますか?
- 12. 2D配列をtypescriptでどのように平坦化できますか?
- 13. どのように配列の値を数えますか?
- 14. 2D int配列をStreamsで2D String配列に変換するにはどうすればよいですか?
- 15. この配列をforeachループでどのようにループするのですか?
- 16. 2d配列を使ったjavascriptのループ
- 17. VBA - どのように列をループし、挿入配列数式
- 18. 2D配列の列値の平均を見つけるにはどうすればよいですか?
- 19. 配列の配列2D最大値
- 20. Javascript:2D配列のテスト値
- 21. 2D-float配列の値が
- 22. 2D配列の重複値
- 23. foreachループの各値をどのようにエコーしますか?
- 24. どのようにdatatableから配列に値を格納し、配列の各値をforループでC#で検索しますか?
- 25. 配列の2D値をSQLに挿入
- 26. 2D配列の列に1D配列を格納するにはどうすればよいですか?
- 27. 2D配列の列を1D配列のように変更する
- 28. PHP - 2D配列の各配列に値を追加する
- 29. テキストファイルを2D配列に入れよう
- 30. 2D配列内の値が別の2D配列内にある場合関数
円形断面:アルゴリズム自体の詳細についてはウィキペディアを参照してください?それがどういう意味か分かりませんので少し説明できますか? – sberry
ダニエルが書いたことはありそうですが、私はそれが黒い円であることを理解しています。 –