• 締切済み

pv3Dについて教えてください

H240S18B73の回答

回答No.3

つねに最新のものを使って公式のdocumentationを 確認するのが一番かなとも思います GreatWhiteもまだまだ変わってくみたいだし 便利なクラスやプロパティが追加されていったりしますからね 最新入れてるなら、フレームスクリプトですが ちょっと練習がてらつくってみました コードが長くなっちゃったんで2回に分けます import org.papervision3d.view.BasicView import org.papervision3d.objects.DisplayObject3D import org.papervision3d.objects.primitives.* import org.papervision3d.objects.special.VectorShape3D import org.papervision3d.materials.ColorMaterial import org.papervision3d.materials.utils.MaterialsList import org.papervision3d.materials.shadematerials.FlatShadeMaterial import org.papervision3d.materials.MovieMaterial import org.papervision3d.lights.PointLight3D var vw=new BasicView(1,1,true,false) var mtr:ColorMaterial = new ColorMaterial(0x33AA88); var light:PointLight3D=new PointLight3D(false) var shdMtr:FlatShadeMaterial=new FlatShadeMaterial(light,0xAAFFCC,0x338844) var mtrList:MaterialsList=new MaterialsList({all:shdMtr}) var cubeList=new Array() var vecList=new Array() var txtList=new Array() var drc:Number=0 var dst:Number=500 var rot:Number=0 var prevX:Number=mouseX

yoshino08
質問者

補足

頂いたソースを大まかにですが解読し、自分なりに思い描く形に修正させて頂きました。 また問題点が出てきましたので、新たに投稿させて頂きますので、暇があれば教えてください。

関連するQ&A

  • PV3Dでのアニメーション

    下記のソースですが、以下のような動きを追加したいと考えています。 ・直方体の側面(4方向共)に10数個の矢印を縦に並べる ・矢印の向きは直方体方向 ・矢印の先は円錐型ではなく、四角柱型もしくはarrowクラスの  ような形 ・カメラの初期位置を今の位置から更にx軸方向にもってくる  (初期画面で軸が三菱のマークに見えるようなイメージ) です。 問題なのが、arrowクラスの引数が色指定しかない為、任意の大きさに 指定して配置することができません。自分でシンボルを作って配置する しかないのでしょうか。 また、テキストのyがどうしてもyに見えないのですが解決方法はありますか? 以下にソースを貼りますので、ご教授ください。 import org.papervision3d.view.BasicView import org.papervision3d.objects.DisplayObject3D import org.papervision3d.objects.primitives.* import org.papervision3d.objects.special.VectorShape3D import org.papervision3d.materials.ColorMaterial import org.papervision3d.materials.utils.MaterialsList import org.papervision3d.materials.shadematerials.FlatShadeMaterial import org.papervision3d.materials.MovieMaterial import org.papervision3d.lights.PointLight3D var vw=new BasicView(1,1,true,false) var mtr:ColorMaterial = new ColorMaterial(0x000000); var mtr1:ColorMaterial = new ColorMaterial(0x33AA88); var light:PointLight3D=new PointLight3D(false) var shdMtr:FlatShadeMaterial=new FlatShadeMaterial(light,0xAAFFCC,0x338844) var mtrList:MaterialsList=new MaterialsList({all:shdMtr}) var cubeList=new Array() var vecList=new Array() var txtList=new Array() var drc:Number=0 var dst:Number=500 var rot:Number=0 var prevX:Number=mouseX for(var i=0;i<3;i++){ cubeList.push(new Cube(mtrList,60,60,200)) vw.scene.addChild(cubeList[i]) cubeList[i].x=150 cubeList[i].y=150 cubeList[i].z=150 vecList.push(new DisplayObject3D()) var cone=new Cone(mtr,10,30) var bar=new Cylinder(mtr,3,250) cone.y=250 bar.y=125 vecList[i].addChild(cone) vecList[i].addChild(bar) vecList[i][["rotationX","rotationY","rotationZ"][i]]=90 if(i==2)vecList[i].rotationZ=-90 vw.scene.addChild(vecList[i]) var movMtr=new MovieMaterial(makeTxtMov(["x","y","z"][i]),true,false,true) movMtr.oneSide=false txtList.push(new Plane(movMtr,50,50)) txtList[i][["x","y","z"][i]]=300 vw.scene.addChild(txtList[i]) } function makeTxtMov(str:String):MovieClip{ var rtn=new MovieClip() var fld=new TextField() var fmt=new TextFormat fmt.size=100 fmt.color=0x000000 fld.defaultTextFormat=fmt fld.text=str rtn.addChild(fld) return rtn } light.y=light.x=light.z=500 vw.camera.y=300 vw.startRendering() addChild(vw) vw.y=50 addEventListener(Event.ENTER_FRAME,frameTick) function frameTick(e){ drc+=rot rot*=0.98 for each(var txt in txtList)txt.rotationY=-drc*180/Math.PI-90 vw.camera.x=light.x=Math.cos(drc)*dst vw.camera.z=light.z=Math.sin(drc)*dst } stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e){prevX=mouseX;stage.addEventListener(Event.ENTER_FRAME,setRot)}) stage.addEventListener(MouseEvent.MOUSE_UP,function(e){stage.removeEventListener(Event.ENTER_FRAME,setRot)}) function setRot(e){ rot=(prevX-mouseX)/300 prevX=mouseX } ※元ソースは頂き物です。

  • UNITYのカメラアングル

    unity 3dで質問です。 新規でプロジェクトを作るとカメラはデフォルトで 右がX軸プラス、上がY軸プラス、奥行きがZ軸プラス になっていて、座標位置がX0、Y1、Z-10になっています。 Cubeなどのゲームオブジェクトを新規で作ると 座標位置がX0、Y0、Z0に置かれ、後ろから見ているような アングルになると思うのですが、なぜ、デフォルトがこのような仕様なのでしょうか。 一般的にゲームを作っていく場合、下記のどちらになりますでしょうか。 また、皆さんはどちらで作られますでしょうか。 ・Z軸プラス方向にオブジェクトを配置していき、後ろからのアングルのまま作っていく ・カメラを反転させ、Z軸プラス方向からマイナス方向のアングルに変更し、 Z軸マイナス方向にオブジェクトを配置し作っていく 何か勘違いや考え方が間違っていたら教えてください。

  • 直線型錯体のd軌道分裂について

    d軌道分裂について 直線型錯体のd軌道分裂はどのようになるのでしょうか? 結晶場理論で考えようとすると、その直線がx軸、y軸、z軸のどの方向に向いているかによって分裂の仕方が変わってはこないでしょうか。 例えばx軸またはy軸に直線が乗っていると、クーロン反発によりdx^2-y^2のエネルギーは上がりますが、z軸に乗って いるとdx^2-y^2のエネルギーは逆に下がる気がします。 結晶場理論において、錯体の軸の取り方をふまえて直線型錯体のd軌道分裂がどのようになるか御説明お願いします。

  • divで『Ex(x+Δ、y+Δ、z+Δ)-Ex(x+Δ、y、z)』は無視できる?

    div(発散)の定義の途中過程についてです。 P(x、y、z)の近くに各座標軸に沿った長さがΔx、Δy、Δzの微小直方体を考える。 その微小直方体のyz平面に平行な面をそれぞれA、Bとする。 (Aのx座標がx、Bのx座標が(x+Δx)) E(Ex、Ey、Ez)とする。 ∫(A+B)Exds={(Ex(x+Δx、y、z)-Ex(x、y、z))/Δx}ΔxΔyΔz 『ここでy、z座標の値も面内で変化しているが、それはΔy、Δzについ 高次の寄与しか与えない。』・・・※ この最後の1文についてなのですが、 私は〈微小直方体におけるExのy方向、z方向の変化量『Ex(x+Δx、y+Δy、z+Δz)-Ex(x+Δx、y、z)』は x方向の変化量『Ex(x+Δx、y、z)-Ex(x、y、z)』に比べると無視できる〉つまり 『Ex(x+Δx、y、z)-Ex(x、y、z)>>Ex(x+Δx、y+Δy、z+Δz)-Ex(x+Δx、y、z)』と解釈しました。 そこで質問なのですが、 自分には『Ex(x+Δx、y、z)-Ex(x、y、z)>>Ex(x+Δx、y+Δy、z+Δz)-Ex(x+Δx、y、z)』はちっとも明らかには思えないのですが、 なぜこれが成り立つのでしょうか? ここら辺の説明が詳しく載っている参考書がなくて困っています。 (どの参考書でも明らかとしてサラッと流されている。) どなたかよろしくお願い致します。 以下参考HPです。 http://www.ese.yamanashi.ac.jp/~itoyo/lecture/denkigaku/denki01/denki01.htm#発散

  • 方向微分

    ω=f(x、y、z)上の点(x0、y0、z0)における(cosα、cosβ、cosγ)方向への方向微分を求めよ。 (ただしベクトル(cosα、cosβ、cosγ)はx軸、y軸、z軸とのなす角がそれぞれα、β、γであるような単位ベクトル(方向余弦)である) 問題は以上です。 私の解いた回答は ω=f(x、y、z)を一次化するとdω=(∂f/∂x)dx+(∂f/∂y)dy+(∂f/∂z)dz 点(x0、y0、z0)からの方向微分なので dω=∂f/∂x(x0、y0、z0)dx+∂f/∂y(x0、y0、z0)dy+∂f/∂z(x0、y0、z0)dz となる。 よって (cosα、cosβ、cosγ)方向への方向微分= {∂f/∂x(x0、y0、z0)cosα+∂f/∂y(x0、y0、z0)cosβ+∂f/∂z(x0、y0、z0)cosγ}/√cos^2α+cos^2β+cos^2γ なのですがうまくまとまらず、もっときれいな形になるのではないかと思うのですが・・・。 どなたかアドバイスをお願いします。

  • Java3Dで横置き円筒体の円筒中心軸廻りに回転アニメーションさせたいのですが

    Java3Dで円筒をY軸方向に直立配置した後、Y軸を中心軸としての回転アニメーションをさせるところまでは問題ないのですが、この円筒を90度倒して、すなわち、横置きにして同じ円筒中心軸とする回転アニメーションをするのはどのようにすればよいのでしょうか? X軸方向(axis.rotZ(Math.PI / 2.0 )を使って)、或いはZ軸方向に倒し、RotationInterpolatorを使っても、X軸、或いはZ軸を中心軸とした回転アニメーションにはならず、逆にZ軸、或いはX軸廻りに回転する結果となってしまいます。これは、回転軸に関してはY軸が基本で、円筒を倒すと同時にY軸も円筒と共に90度倒れることによると思われます。 横置き円筒軸廻りの回転アニメーションはどのようにすればできるのでしょうか?

    • ベストアンサー
    • Java
  • 応力の平衡方程式について

    x、y、z軸に垂直な面で切って作った辺長dx、dy、dzの微少直方体について力のつりあいおよびモーメントのつりあいを考えるとき、 x方向の力のつりあいの式がなぜ下記のようになるのか分かりません。 Xは単位体積あたりの物体力のx軸方向成分です。 ∂/∂x(σxdydz)dx + ∂/∂y(σyxdzdx)dy + ∂/∂z(σzxdxdy)dz + Xdxdydz = 0 σxdydz、σyxdzdx、σzxdxdyは応力*面積なので、x方向の力を表していることは分かるのですが、なぜそれらにdx、dy、dzをかけてさらに偏微分しているのか分かりません。この式の意味を教えてください。 お願いします。

  • 空間の座標について

    空間図形の座標なんですが、 進行方向に対して、左右方向がX軸 進行方向をY軸、深度をZ軸としたX-Y-Z空間があります。 X-Y平面でY軸を0とした時の角度をβ X-Y平面とZ軸と方向との角度をα 原点から(x、y、z)までの距離をLとする このとき、点(x、y、z)をもとめるにはどうしたらよいのでしょうか? ちなみにx=y=zは0ではありません できれば三角関数を使った解法を教えてください ちなみに (x、y、z)=(Lsinβ、Lcosβsinα、Lcosβsinα) という答えらしいんですが、さっぱりわかりません・・ って、うまくかけてない・・・

  • vectorworks12.5 3Dについて

    データパレットなどでZ軸の位置を知りたいのですが、図形によっては表示されず、ΔXΔYだけになります。 すべての3D図形のZ位置を知る方法はないのでしょうか?

  • 慣性モーメントの問題

    密度が一定(ρ_0とする)の次の指定された軸の周りの慣性モーメントを計算せよ。 (1)一辺の長さaの立方体。立方体の一辺を軸にした場合の慣性モーメントおよび、立方体の中心を通り、相対する2面に垂直な軸に関する慣性モーメント。 (2)xyz空間でx^2+y^2≦z^2,0≦z≦hで定義される物体。z軸に関する慣性モーメント。 この問題で、(1)の前者=∫∫∫_D ρ_0(x^2+y^2)dxdydz,D=(0≦x≦a,0≦y≦a,0≦z≦a)として解いてあり、(1)の後者=8∫∫∫_D ρ_0(x^2+y^2)dxdydz,D=(0≦x≦a/2,0≦y≦a/2,0≦z≦a/2)として解いてあり、(2)=∫∫∫_V ρ_0(x^2+y^2)dxdydz,v=(x^2+y^2≦z^2,0≦z≦h)として解いてあったのですが。 ここで質問です。 (1)確かに慣性モーメントの公式はI=∫∫∫ρ(x、y、z)r^2(x,y,z)dxdydzなのですが、なぜ、(1)(2)ともにr^2のところがx^2+y^2なのでしょうか?zが入ってもおかしくないと思うのですが。r^2は軸からの距離ですし。これは、自分の都合よく平面で考えて良いということなのですか? (2)(1)の後者で8倍してありますが、何をもって8倍なのでしょうか? (3)そもそも慣性モーメントとはなんなのか? この3つの私の質問の答えを教えてください。よろしくお願いします。