最近、3Dゲームを作るためには微分・積分・行列の知識が必要だということを知りました。微分・積分については高校のときに習いましたが、それがどういう形で使われるのか、教えてもらえないでしょうか?

あと、行列とか線形なんとか?というのも必要だとか……。文型の人間なので、申し訳ないですが文型人間でもわかるように説明していただけると助かります。

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

3Dゲームということで、主に画面に表示する方法として、


コンピュータグラフィックスについてご説明します。

微分は、簡単にいうと、「線の傾き」を表します。
描きたい図形の傾きがわからないと、
図形が描けません。

積分は、微分の逆の操作になります。
つまり、線の傾きがわかっている時に、
実際に線を引くためには積分の操作が必要になります。

直線なら、微分積分はいらないかもしれませんが、
複雑な3Dの背景を描くためには必要になるでしょう。

また、物体を移動させるときには、物体の座標および、
移動の式を行列の形で表します。
(x,y)というのも行列の一つです。

平行移動や回転移動などを続けて行なう場合、
物体の座標に、行列をかけ算することで、
物体の移動を行なうことができます。

背景も同様に、視点を変えるためには、
行列を用いた計算を行なうことになります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
すみません、よくわかりませんorz
「線の傾き」について、もう少し具体的に教えていただけないでしょうか?

お手数ですが、宜しくお願いいたします。

お礼日時:2005/04/15 17:45

一般に多変数の微分は行列(ヤコビ行列)で表すことができます


ですから、三次元の物体の移動を表すのに行列を用いることは都合がいいかもしれません
    • good
    • 0
この回答へのお礼

なんとなくわかった……気がしますorz
とりあえず難しいということは確実に分かりました○| ̄|_
もっと微分積分行列について勉強しておきます;

ご回答ありがとうございました;

お礼日時:2005/04/18 14:05

>「線の傾き」について、もう少し具体的に教えていただけないでしょうか?



わかりやすく言えば、「線の方向」です。

中学校で習う直線でいうと、
y = ax + bの a になります。

aの値によって、直線の向きが決まりましたよね。

つまり、どっちの方向に線を描いていけばよいか、
ということに関係します。
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q高校数学の行列、ってなんの役に立つの?

行列、ってなんの役に立つのでしょうか?

いや、別に
「四則演算さえ出来れば町での買い物に不自由しない。
 これ以上の数学なんて学者のお遊びに過ぎないんだ!」
などというような無意味な批判をするつもりはないのです。

ただ、日常生活とか、ハイテク社会のどの辺にあの「行列」の解法が役に立ってるのかな? と思いまして。

「待ち行列理論」なら役立ち度がわかるんですけどね。

どなたかご回答をお願いします。

Aベストアンサー

PS3とか、3D表示なゲームとかやりませんか?
TVなどで3DCGで動き回るものとかあるかと思われますが……
# 最近流行りの3Dテレビとかの「立体視」の方ではありません。
ああいうところで行列演算が使われていますね。
# もはや忘却…。まぁ、今更そっち方面に行こうとも思いませんが。(技術に遅れた老兵は去るのみ…)

CADなんかでも内部ではいろいろと行列演算しているんじゃないですかねぇ。
そういう意味ではいろいろなところで応用されているかと。

QDWORDの実際の型は何でしょうか

VC++.NETの環境です。
DOWRD dw1 = 1;
int i = 2; と定義し
ここで
if ( i > dw1 ){
何かの処理;
}
とコーディングすると
warning C4018: '>' : signed と unsigned の数値を比較しようとしました。
のワーニングがでます。
これは、DWORDがint型でなくunsigned int型のようにも見えます。
ある本によれば(VC++.V.NET逆引き大全500の極意)
DWORD はint型であると記述されています。
もし、int型ならこのワーニングはでないはずなのですが、
なぜでるのでしょうか。又、DWORDの実際の型は何なのでしょうか。ご存じのかたおりましたら、教えていただけませんでしょうか。

Aベストアンサー

型定義が知りたいのならば、宣言ファイルを見れば疑問を挟む余地もありません。
DWORD型はwindef.hで
"typedef unsigned long DWORD;"
と宣言されています。

Visual Studioを使っているのならば、知りたい型の上にマウスポインタを置いて右クリック、ポップアップメニューの「定義へ移動」または「宣言へ移動」で簡単に知ることが出来ます。

Qprivate static という変数の修飾

お世話になります。

private static final String HOGE = "hoge";

という変数(finalなので定数ですが)があるとします。このような、privateでstaticな変数というのは、どのような使われ方を意図しているのでしょうか?privateな変数がstaticである必要は、どのようなときに生じるのでしょうか?

よろしくご教授ください。

Aベストアンサー

 その private な変数が所属するクラス自身がいくつも定義された場合に、プログラム全体で1つのメモリしか確保されなくなります。
 なんで、メモリ量がものすげー切羽詰ってるときとか、ほんの数バイトでも節約した方がいい気がするときに有効です。

Q複数桁10進数の*桁目だけを抽出したい

タイトルがすべてと言えてしまうのですが、
例えば、int宣言された"4287"(この値は変動します)という数値があったとして、1桁目の"7"だけを別の変数へ引き抜きたいのですが、その場合にはANDによるマスク処理による演算で処理可能なのでしょうか?
また、他に良い方法などありましたら教えていただけますでしょうか?

Aベストアンサー

★10進数ですので AND は使えませんね。
・簡単なサンプルを載せますので読み取って下さい。

サンプル1:
int value = 4287;
int a[ 4 ];

a[0] = (value % 10); value /= 10; // 1桁目を取り出す
a[1] = (value % 10); value /= 10; // 2桁目を取り出す
a[2] = (value % 10); value /= 10; // 3桁目を取り出す
a[3] = (value % 10); value /= 10; // 4桁目を取り出す

サンプル2:
int value = 4287;
int a;

a = (value % 10);
value -= a;

value → 4280
a → 7
になります。

Qべき乗

べき乗とは一体なんですか?
ウィキを見ても理解できませんでした。
2の2乗は2×2ですが、
2のマイナス2乗は一体どのような式なのですか?

Aベストアンサー

算数の延長線上だけの概念だけだといまいち理解出来ないですよね。
べき乗って要は指数なんですけど、
そういう難しい話を出来るだけ捨てて、算数の世界で説明出来る位まで掘り下げて説明します。

例えば 10の2乗は100、10の3乗は1000となります。
これを数字の動きに目を合わせてもう一度、書いてみます。
00010.00000 ←これを2乗すると↓
00100.00000 //10という値が左に1つずれた結果が答え

00010.00000 ←これを3乗すると↓
01000.00000 //10という値が左に2つずれた結果が答え

こういう風に表す事が出来ます。
じゃあ、10のマイナス2乗ってなった場合はどうなるのかというと、
00010.00000 ←これを-2乗する↓
00000.01000 //10という値が右に3つずれた結果が答え

という答えになります。
1を基準点として、右や左にいくつずれるか。
これがべき乗なのです。


で、2のべき乗を考えた時は、
全部2進数で考える必要があります。
00010.00000 ←2進数で表した数値の2
00100.00000 ←2乗した結果。数値で言うと4
00010.01000 //-2乗した結果。数値で言うと0.25


これで何となく分かっていただけたでしょうか?
ちなみに37のx乗を計算するみたいな時があったとしたら、
それは37進数で考えるという計算が必要になるのです。

算数の延長線上だけの概念だけだといまいち理解出来ないですよね。
べき乗って要は指数なんですけど、
そういう難しい話を出来るだけ捨てて、算数の世界で説明出来る位まで掘り下げて説明します。

例えば 10の2乗は100、10の3乗は1000となります。
これを数字の動きに目を合わせてもう一度、書いてみます。
00010.00000 ←これを2乗すると↓
00100.00000 //10という値が左に1つずれた結果が答え

00010.00000 ←これを3乗すると↓
01000.00000 //10という値が左に2つずれた結果が答え

こういう風...続きを読む


人気Q&Aランキング

おすすめ情報