本をよんでいるのですが自分の創造した図形の3D座標を2Dの座標に変換する仕方やその点の座標をどのように行列に当てはめるのかがわかりません。行列での回転・縮小拡大の仕方などが・・。
3Dの描画や行列に詳しい方教えてほしいです。
もし詳しくなくても関係のあるVBサイトがあれば教えてほしいです。
お願いします。

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

A 回答 (1件)

重いけど、DirectXはだめ?


VBでも一応動くよ
    • good
    • 0

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

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

このQ&Aを見た人が検索しているワード

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

Q日本の3Dアニメ、なぜ作れない??

質問です。

どうして日本の3Dアニメに進歩がみられないのでしょうか?

STAND BY ME DORAEMONが大ヒットしましたし、これが起爆剤になるかと思いきや、その後も3Dアニメは見られず……

ポケモン、ドラえもん、クレヨンしんちゃん、コナンあたりは3D化してもいいのでは? とおもいます。それぞれの絶対的なファンの層はいるわけですし(主に子供たち)。

完全3D化じゃなくても、飛び出す感じのは作れてもおかしくないと思いますけどね。

Aベストアンサー

『STAND BY ME ドラえもん』(2014年8月8日公開)以降も、映画館で3D上映される日本アニメは作られてますよ。私が知る限りでも、この2年ちょっとで以下の5作があります。

2014年
 11月29日公開 『くるみ割り人形』

2015年
 8月21日公開 『アイカツ!ミュージックアワード みんなで賞をもらっちゃいまSHOW!』
 10月10日公開 『GAMBA ガンバと仲間たち』
 10月24日公開 『とびだすプリパラ み~んなでめざせ!アイドル☆グランプリ』

2016年
 8月6日公開 『ルドルフとイッパイアッテナ』

週末興行収入ランキングをみると、『くるみ割り人形』は89スクリーンながら12位と健闘、『アイカツ』も12位、『GAMBA』は304スクリーンで初登場7位、2週目も7位、『とびだすプリパラ』は79スクリーンながら13位と健闘、『ルドルフ』は331スクリーンで初登場5位、2週目7位、3週目9位です。
http://eiga.com/ranking/20141201/
http://eiga.com/ranking/20150824/
http://eiga.com/ranking/20151013/
http://eiga.com/ranking/20151026/
http://eiga.com/ranking/20160808/

『GAMBA』や『ルドルフ』は、原作もあるし、街中でもよく宣伝を見かけただけあって、好成績でした。特に『ルドルフ』の興行収入は14.6億円なので、ヒット作と言えます。
http://www.eiren.org/toukei/index.html

『STAND BY ME ドラえもん』(2014年8月8日公開)以降も、映画館で3D上映される日本アニメは作られてますよ。私が知る限りでも、この2年ちょっとで以下の5作があります。

2014年
 11月29日公開 『くるみ割り人形』

2015年
 8月21日公開 『アイカツ!ミュージックアワード みんなで賞をもらっちゃいまSHOW!』
 10月10日公開 『GAMBA ガンバと仲間たち』
 10月24日公開 『とびだすプリパラ み~んなでめざせ!アイドル☆グランプリ』

2016年
 8月6日公開 『ルドルフとイッパイアッテナ』

週末興行収...続きを読む

Q座標系のみ拡大したい

お世話になります。
VB2005でpictureboxに線画させるプログラムの検討をしています。
拡大機能をgraphicのScaleTransformで処理しようとしたのですが、座標系だけでなく、線幅も太く、文字列も大きくなってしまいます。
座標系のみコントロールすることはできないのでしょうか。

Aベストアンサー

座標系のスケールは変更せずに描画する図形の座標を
変更すれば線幅もフォントも変更せずにすみます

g.DrawLine(p, 10, 10, 20, 20)
   ↓
g.DrawLine(p, 10 * n, 10 * n, 20 * n, 20 * n)

拡大率が大きくなる場合には、図形要素が画面内に入る
か否かを判別して、表示対象の図形要素のみを描画する
様にして処理速度の向上を計るといった事もします。

Qプロが使う3Dアニメのツール

興味から聞かせて頂きます。
プロが使う3DCGの作成ツールと言えばLightwaveや3ds Maxが定番だと思います。
それをアニメにする場合、プロだとどのようなアニメーションツールを使用しているのでしょうか。
一応3ds maxにも簡単なアニメーション機能はついていますが、プロはそんなもの使わないと思います。
ちなみにここでいう3Dアニメというのは眼鏡をかけたら飛び出す立体3Dではなく3DCGを使用したアニメーションのことになります。
よろしくお願いします。

Aベストアンサー

 「CG WORLD」という雑誌を読むと良いかと。

 現在の主流は「MAYA」「3dsMAX」で、オーサリングは「AfterEffects」が一般的でしょうか。

Q2つの座標と角度から交点座標の求め方

(X1, Y1)と(X2, Y2)の2点の座標と角度θがあります。
この情報から交点座標(XX, YY)を求めたいと思っています。

どのような計算式になるのでしょうか?

VB6にて作成しております。
よろしくお願いします。

Aベストアンサー

Windowsで閉図形の内外の点の判定をしたのであれば
WinAPIで使われるのRegionを使ってみるのも一つの方法ですよ

CreatePolygonRgn,PtInRegion,CloseHandleの3つのAPI関数とPOINTAPI構造体を定義すれば使えます

dim pts(20) as POINTAPI
' ptsの配列に各頂点の座標を設定
dim hRng as Long
' 15の頂点の場合は 2番目の引数の20を 15に変更
' 3番目は定数なので APIビューアで探してください
' 設定できる値は ALTERNATE=1、WINDING=2 です
hRng = CreatePolygonrng( pts(0), 20, WINDING )
if hRng<> 0 then
  if PtInRegion( hRng, x, y ) then
    ' ここに来れば内部
  else
    ' ここに来れば外部
  end if
end if
CloseHandle hRng

といった具合です
API宣言は VB6付属の APIビューアで定義を探してみてください

# 関連質問があるならそれも明記したほうがいいように思います
# http://oshiete1.goo.ne.jp/qa5330333.html

Windowsで閉図形の内外の点の判定をしたのであれば
WinAPIで使われるのRegionを使ってみるのも一つの方法ですよ

CreatePolygonRgn,PtInRegion,CloseHandleの3つのAPI関数とPOINTAPI構造体を定義すれば使えます

dim pts(20) as POINTAPI
' ptsの配列に各頂点の座標を設定
dim hRng as Long
' 15の頂点の場合は 2番目の引数の20を 15に変更
' 3番目は定数なので APIビューアで探してください
' 設定できる値は ALTERNATE=1、WINDING=2 です
hRng = CreatePolygonrng( pts(0), 20, WINDING )
if hRng<>...続きを読む

Q3D CGアニメについて

3D CGアニメについての質問です。よろしくお願いします。mm

1.先日、金卵という動画(実際には
 The World of GOLDEN EGGS という正式名?)で3DCGアニメ
 があったのですが、あれは何のソフトで制作しているのでしょうか?
 また、あの程度のアニメーションを一番簡単に作れそうな3DCG
 ソフトがあれば教えて下さい。
 また、おすすめの本や解説サイト等もあったら教えて下さい。

当方まったくの素人ですが、
何卒ご教授の程よろしくお願い致します。mm

Aベストアンサー

あのようなアニメ風の3D CGの技法は
トゥーンレンダリングといい、今時の(ある程度高等な)3D CGソフトなら、大抵可能です。
が、まず第一にソフトがえらく高いうえに、
トゥーンレンダリング用の追加のソフトを探して(購入して?)インストールする必要もあり、
その後のCG作成の行程を考えても、
決して、素人の方が簡単に作れるというシロモノではないです。

トゥーンレンダリングではないですが、
3Dアニメを簡単に作る方法としては・・・
昔、マイクロソフトから「3Dムービーメーカー」という
簡単に遊べるソフトが出ていたのですが・・・
http://www.jiten.com/dicmi/docs/mark/362s.htm
最近も作品が公開されてはいるようですが、ソフト自体は消えてしまった、のでしょうか。。?

Q座標A(X,Y)の線分(aX,aY)(bX,bY)に対称な座標の求め方

VBで図形を入力した線分に対称に反転した図形と書こうとしています。
その為に必要な座標A(X,Y)の線分(aX,aY)(bX,bY)に対称な
座標B(X',Y')の求め方についてご教授お願いいたします。

Aベストアンサー

 次の関係から連立方程式を解いてください。

 点P(aX,aY)、点Q(bX,bY)とすると、

・直線PQと直線ABは垂直に交わる。 ⇒2つの直線の傾きを掛けると-1になる。

・2点ABの中点Mが直線PQ上を通る。⇒直線PQの方程式に点M((X+X')/2, (Y+Y')/2)を代入する。

Qアニメの背景の一部に3DCGを使うメリットは?

こんにちは。
最近のアニメで『イノセンス』等のように背景の一部に3DCGを使う理由は何なのでしょうか?

他の疑問として3Dに見えるのは、なめらかな影を付けているからですか?
静止画のトゥーンレンダリングが3Dに見える理由は?

Aベストアンサー

>最近のアニメで『イノセンス』等のように背景の一部に3DCGを使う理由は何なのでしょうか?

1.動画でありながらも、セルでは表現出来ない質感の背景を表現出来る。(歯車のシーンとか)

2.アニメで奥行きが表現出来る(バトーの視点のシーンとか)

>他の疑問として3Dに見えるのは、なめらかな影を付けているからですか?

どのカットの何を対象として言ってるのか不明ですし、主観やケースバイケースの問題ですので、一概にどうとも言えません。

>静止画のトゥーンレンダリングが3Dに見える理由は?

人間の手描きの場合と、陰影のつけ方が違うからです。

QRectangleで画像の座標を指定しても、違う座標の範囲を取得してしまう

vb2005で LEADTOOLS 16.5J を使用して元画像よりトリミングするプログラムを作っています。

Private Sub RasterImageViewer1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles theViewer.MouseDown
'クリックされた地点より、長さ150の正方形の座標を指定
Dim strRectangle As Rectangle = New Rectangle(e.X, e.Y, 150, 150)
'リージョンを作成
RasterImageViewer.Image.AddRectangleToRegion(Nothing, strRectangle, Leadtools.RasterRegionCombineMode.Set)
End Sub

画像をクリックすると、リージョン(トリミングする範囲の点線)の枠が表示されるのですが、
座標の左上(0,0)から離れれば離れるほど、クリックした地点より右下にずれてリージョンの枠が表示されてしまいます。

調べてみると、オフセットを調整する処理が必要らしいことは分かったのですが、
具体的にどうすれば良いのか分かりません。

ご伝授よろしくお願いします。

vb2005で LEADTOOLS 16.5J を使用して元画像よりトリミングするプログラムを作っています。

Private Sub RasterImageViewer1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles theViewer.MouseDown
'クリックされた地点より、長さ150の正方形の座標を指定
Dim strRectangle As Rectangle = New Rectangle(e.X, e.Y, 150, 150)
'...続きを読む

Aベストアンサー

LEADTOOLSは使っていませんので、具体的な解決策は提示できませんが。

>座標の左上(0,0)から離れれば離れるほど
スケールのズレが原因の典型的な現象ですね。

画像をトリミングするトリミング枠が表示されるって事ですので、プログラムから数値指定するのは画像のスケール基準であるところのピクセル指定であることは間違いないと思います。
※もし関数仕様が上記推測でなければ、以下はそれに従って読み替えてください。

画面上でクリックして得られるポイント(クリック位置x,yの点)は、当然コントロールの画面上のピクセルです。

画像を拡大/縮小表示しているのであれば、当然ながらそれらのクリックしたポイントと、対応する画像上のポイント(トリミング開始位置)は異なります。

早い話、一旦画像表示の拡大/縮小を解除して実寸表示にして、テストしてみてください。
おそらく希望通りの動作になります。

拡大/縮小表示する際には、拡縮率が120%であれば、クリックされたポイントのx,yそれぞれ1.2倍に、80%であれば0.8倍にと指定してやれば、トリミング枠は希望通りの位置にくると思います。

>クリックした地点より右下にずれてリージョンの枠が表示されてしまいます。
今現在、拡大表示されている状態ですかね、たぶん。

LEADTOOLSは使っていませんので、具体的な解決策は提示できませんが。

>座標の左上(0,0)から離れれば離れるほど
スケールのズレが原因の典型的な現象ですね。

画像をトリミングするトリミング枠が表示されるって事ですので、プログラムから数値指定するのは画像のスケール基準であるところのピクセル指定であることは間違いないと思います。
※もし関数仕様が上記推測でなければ、以下はそれに従って読み替えてください。

画面上でクリックして得られるポイント(クリック位置x,yの点)は、当然コントロールの画面...続きを読む

Q3DCGと手書きアニメでは、どっちが作るのが大変ですか?

映画で最近多い3DCGと、手書きアニメでは
まったく同じシーン(時間と内容)を作るとしたら
どっちが大変なんでしょうか?

それから、3DCGは絵が上手くない人でも作れますか?

Aベストアンサー

3DCGの場合はまず、元になる形状データ作成に時間がかかります。シーンを作るのは容易ですが、一方で最終的に画像にする「レンダリング」にも時間がかかります。

一方で、手描きの場合は最終的な表現方法によって時間が変わります。また、作業者のレベルによっては「商業レベルに達しない」物から、数時間で完成する(データの移動時間は無視するとして)場合もあります。

どっちが大変かは一概に言えませんが、納期の目処が立て易いのは3DCGですね。

3DCGに、直接デッサンなどのスキルは不要ですが、「絵心がある」方が有利なのは間違いありません。構図やアクションなどでそういう違いがでてきます。

Q描画の保持

DrawImageなどで描画した画像はRefreshやウィンドウの切り替えで
なくなってしまいますが、これを保持するにはどうしたらいいでしょうか。
また、保持した後に任意に消去する方法などはありますか?

環境はVisualBasic2008です。

Aベストアンサー

1) そのコントールまたはフォームのOnPaintイベントで描画する
2) ImageやBackgroundImageプロパティに描画しているImageオブジェクト設定
といった手法でしょう

具体的にどのようコードをお書きなっているのかをお示しになったほうが的確なアドバイスを得やすいですよ


人気Q&Aランキング

おすすめ情報