ホームページ >バックエンド開発 >PHPチュートリアル >配列の 2 番目の次元のインデックス値について質問がありますか? ?

配列の 2 番目の次元のインデックス値について質問がありますか? ?

WBOY
WBOYオリジナル
2016-06-23 14:20:29945ブラウズ

弱気な質問です
例えば、写真が2列あるのですが、上下の列に同じサイズの写真が3枚ある場合、その1次元目と2次元目のインデックス値は何なのかを聞きたいです。上の列の 2 番目の画像オブジェクト?

連聯館のゲームコードで以下のような両端コードを見たので、配列の基礎知識が少し分かりません。

// Piece[][] 配列内のオブジェクトの 1 番目の次元のインデックス値
private int IndexX;
// Piece[][] 配列内のオブジェクトの 2 番目の次元のインデックス値
private int IndexY;


ディスカッションへの返信 (解決策)

0 と 1。 。 。

表示されているのは PHP コードではありません

Piece.setBeginX(piece.getIndexX() * imageWidth
+ config.getBeginImageX());
Piece.setBeginY(piece.getIndexY() * imageHeight
+ config. getBeginImageY( ));

たとえば、2 列の画像は座標 (0,0) から始まり、各画像の長さは 5、
次に、2 番目の画像の左上隅の x 座標と y 座標上記のコードでは、結果は 0 と 15 になります。

しかし、結果は 5 と 10 になるはずです

文脈がないので説明できません

非常に混乱しています
1. 行について話しているのか、列について話しているのか? 「上下」と言うと行を意味しているように聞こえますが、その後ろの座標は縦の列のように見えます
2. 添字は通常 0 から始まるように使用されます。つまり、(これはシリアル番号です。これは異なります)以下の座標から区別してください)
(0,0 ) (0,1)...
(1,0) (1,1)...
上記は 1 次元の行と 2 次元の列です。 1 次元の列と 2 次元の行の場合、位置マップは
(0,0) (1,0)...
(0,1) (1,1)... になります。 1 から始めて、プログラムを明確に読まなければなりません

左上隅が [0,0] 座標である場合、あなたが話している [5,10] は位置 (2,1) の左上隅です。 , そして [0,15] は (3,0) の位置にあります?? ここで使用されているのは行が最初、列が最後です

の位置表現は申し訳ありませんが、上下の行であり、各行は 3 つあります同一の画像、各画像の長さと幅は 5 です


この 2 次元配列の座標上の位置は、下の行の最初の画像になります X 座標と Y 座標 (左下隅の座標) に近い画像の (0,0))

私の質問: 上の行の 2 番目の画像オブジェクトの 1 次元と 2 次元のインデックス値は何ですか?

以下の Lianliankan コードの配列内の画像オブジェクトの 2 番目のインデックス値があまり明確ではないためです

// Piece[][] 配列内のオブジェクトの最初の次元のインデックス値
private int IndexX;
// Piece[][] 配列内のオブジェクトの 2 次元目のインデックス値
private int IndexY

[y][x] で整理した場合

[0][0] [0][1; ] [0 ][2]

[1][0] [1][1] [1][2]

[x][y] で整理した場合
[0][0] [1][0] [2] [0]
[1][0] [1][1] [2][1]

ご覧のとおり、配列の原点は左上隅に配置されています。したがって、画像の原点も左上隅に配置する必要があります。つまり、画像の原点を左下隅に配置すると、 y' = h - y になります。座標系には垂直方向の反転があります

上の行の 3 番目 2 つの画像オブジェクトの 1 次元と 2 次元のインデックス値は何ですか?

それらは 0 と 1 ですか?

は 0 行 1 列

は 0 1 です。

[y][x] で整理した場合

[0][0] [0][1] [0][2]

[1][0] [1][1] [1][2]

[x][y] で整理した場合
[0][0] [1][0] [2][0]
[1][0] [1][1] [2][1]

上の段落はよくわかりませんが、なぜこのようになるのですか

[y][x]に従って整理する場合ですか、それとも[x][y]に従って整理する場合ですか?

データを整理する方法はニーズに基づいています

x,y (列、行)

または y,x (行、列)

この質問はまだ明確ではありませんか? Lao Xu が説明してくれると思いました

座標は x、y で固定です

しかし、配列の添え字はプログラマによって決定され、m、n または n、m のいずれかになります (m は行、n は列を意味します)
m または n の最小値 (つまり、最初の行/列の添え字) もプログラマによって決定されます。トラバースするときは、最小値から開始することに注意してください

1 つの次元が列で、2 番目の次元が列である場合。次元が行の場合、位置マップは
(0,0) (1,0)...
(0,1) (1,1)...

[x][y] で整理すると
[0][ 0] [1][0] [2][0]
[1][0] [1][1] [2][1]

1 つの次元が列である場合にこのようにソートされるのはなぜですか二次元は行ですか?

常識的に考えて、1 次元は行、2 次元は列というのは本当ではないでしょうか?

数学の座標記述によると
x横軸
y縦軸
座標点は(x,y)で表されます

これは常識です!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。