• 締切済み

Java3D 座標の値を入力し点を表示させるには

Java3D 座標の値を入力することにより点を表示させたいです。そのために下記のように主な部分のソースコードを作成しました。どこをどうすればよいでしょう教えてください! public class Test extends Applet{ boolean isStandalone=false; Canvas3D canvas=null; SimpleUniverse universe=new SimpleUniverse(canvas); BranchGroup scene=createSceneGraph(); BranchGroup root3=new BranchGroup(); TransformGroup trans3=new TransformGroup(); float x; float y; float z; Vector3f pointposition = new Vector3f(0.0f, 0.0f, 0.0f); TuplePanel bgpanel=new TuplePanel(pointposition) public Test(){ this(false); } public Test(final boolean isStandalone){ this.isStandalone = isStandalone; this.setLayout(new BorderLayout()); Panel panel=new Panel(); this.add(panel,BorderLayout.NORTH); bgpanel.addTupleEventListener(new TupleEventListener(){   public void tupleStateChanged(TupleEvent e){ pointposition=e.getVector3f(); Transform3D t3d = new Transform3D(); t3d.setTranslation(pointposition); trans3=new TransformGroup(t3d); Point3f[] po3=new Point3f[1]; po3[0]=new Point3f(pointposition); PointArray ge3=new PointArray(po3.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge3.setCoordinate(0,po3[0]); Appearance appp3=new Appearance(); Shape3D gggrid3=new Shape3D(ge3,appp3); gggrid3.setGeometry(ge3); trans3.addChild(gggrid3); } }); panel.add(bgpanel); Button addbutton = new Button("Add"); addbutton.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e) { universe.getLocale().removeBranchGraph(scene); scene.addChild(trans3); universe.addBranchGraph(scene); } }); panel.add(addbutton); } @Override public void init() { GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); ・・・ BranchGroup scene=createSceneGraph(); universe.addBranchGraph(scene); } private BranchGroup createSceneGraph(){ root3.setCapability(BranchGroup.ALLOW_DETACH); root3.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); trans3.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans3.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); BoundingSphere bounds3 = new BoundingSphere(new Point3d(),100.0); ・・・ double[] vertices3= {0.65,0.00,0.05,//X軸 ・・・ }; float[] colorP3={0.0f,0.0f,0.0f               ・・・}; LineArray eom3=new LineArray(vertices3.length, GeometryArray.COORDINATES|GeometryArray.COLOR_3); eom3.setCoordinates(0,vertices3); eom3.setColors(0,colorP3); LineAttributes attr3=new LineAttributes(); attr3.setLineWidth(3.0f); Appearance p3=new Appearance(); p3.setLineAttributes(attr3); Shape3D rid3=new Shape3D(eom3,p3); rid3.setCapability(Shape3D.ALLOW_GEOMETRY_READ); trans3.addChild(rid3); Point3f[] po3=new Point3f[1]; po3[0]=new Point3f(x,y,z); float[] colorPo3={1.0f,0.0f,0.0f}; final PointArray ge3=new PointArray(po3.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge3.setCoordinate(0,po3[0]); ge3.setColors(0,colorPo3); Appearance appp3=new Appearance(); appp3.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ); appp3.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); PointAttributes ppo3=new PointAttributes(); ppo3.setPointSize(25.0f);      appp3.setPointAttributes(ppo3); Shape3D gggrid3=new Shape3D(ge3,appp3); gggrid3.setCapability(Shape3D.ALLOW_GEOMETRY_READ); gggrid3.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); trans3.addChild(gggrid3); return root3; }

  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

で、ご質問の方がつまづいているのはどの点でしょうか?というか、完動するソースコードを書いてくれってことでしょうか? どこを答えればよいでしょう教えてください! あと、構文の質問でもないのに、中途半端に削ってそのままではコンパイルできないソースコードを掲載なさっても無意味です。 参考URLは質問者の方にとって非常に参考になるものを挙げました。ぜひご覧ください。

参考URL:
http://www.hyuki.com/writing/techask.html
10091014
質問者

お礼

Foxtrot_OWさん、参考URL見て質問の仕方勉強します。 参考意見ありがとうございました。

関連するQ&A

  • java3D ボタンクリックにより点を動かすには

    java3D ボタンクリックにより点を動かすために下記のようにソースコードを作成しましたが、全く変化なしです。どこをどうすればよいでしょうか? import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; import javax.swing.*; import javax.swing.JApplet.*; import javax.swing.JFrame.*; import javax.media.j3d.*; import com.sun.j3d.utils.applet.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.picking.*; import com.sun.j3d.utils.picking.behaviors.*; public class J3D82 extends JApplet { JButton b1; GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas=new Canvas3D(config); SimpleUniverse universe=new SimpleUniverse(canvas); BranchGroup root=new BranchGroup(); TransformGroup trans1=new TransformGroup(); Transform3D tr=new Transform3D(); Shape3D gggrid1=null; public J3D82() { setLayout(new BorderLayout()); add(canvas,BorderLayout.CENTER); JPanel panel=new JPanel(); GridLayout g1=new GridLayout(1,1); add(panel,BorderLayout.NORTH); JButton b1=new JButton("移動"); panel.setLayout(g1); panel.add(b1); root.setCapability(BranchGroup.ALLOW_DETACH); root.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); root.addChild(trans1); double x=0.2; double y=0.2; double z=0.2; Point3d[] po1=new Point3d[2]; po1[0]=new Point3d(x,y,z); po1[1]=new Point3d(x,-y,-z); float[] colorPo1={1.0f,0.0f,0.0f, 1.0f,0.0f,0.0f}; PointArray ge1=new PointArray(po1.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge1.setCoordinates(0,po1); ge1.setColors(0,colorPo1); Appearance appp1=new Appearance(); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); PointAttributes ppo1=new PointAttributes(); ppo1.setPointSize(25.0f); ppo1.setPointAntialiasingEnable(true); appp1.setPointAttributes(ppo1); Shape3D gggrid1=new Shape3D(ge1,appp1); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_READ); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); trans1.addChild(gggrid1); universe.getViewingPlatform().setNominalViewingTransform(); universe.addBranchGraph(root); b1.addActionListener(new Listener1()); } public class Listener1 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==b1){ Transform3D tr=new Transform3D(); Vector3d vector=new Vector3d(0.2,0.1,0.0); trans1.getTransform(tr); tr.setTranslation(vector); trans1.setTransform(tr); trans1.addChild(gggrid1); } } } public static void main(String[] args) { JFrame f= new JFrame(); J3D82 frame=new J3D82(); frame.init(); f.getContentPane().add(frame,BorderLayout.CENTER); f.setSize(500,500); f.setTitle("Kuukan:点移動ボタン"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }

    • ベストアンサー
    • Java
  • Java3D テキストフィールドより値を入力(代入)し点を動かしたい

    Java3D テキストフィールドより値を入力(代入)し、点を動かしたいのですが、下記のようにソースコードを作成しましたが、入力した値が代入されていないようです。どこをどうしたらいいか教えてください! import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; import javax.swing.*; import javax.swing.JApplet.*; import javax.swing.JFrame.*; import javax.media.j3d.*; import com.sun.j3d.utils.applet.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; public class J3A7 extends JApplet { JTextField text1=new JTextField("x=",10); JTextField text2=new JTextField("y=",10); JTextField text3=new JTextField("z=",10); double a,b,c; String str1,str2,str3; GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas=new Canvas3D(config); SimpleUniverse universe=new SimpleUniverse(canvas); BranchGroup root=new BranchGroup(); TransformGroup trans1=new TransformGroup(); public J3A7() { setLayout(new BorderLayout()); add(canvas,BorderLayout.CENTER); JPanel panel=new JPanel(); GridLayout g1=new GridLayout(1,3); add(panel,BorderLayout.NORTH); panel.setLayout(g1); panel.add(text1); panel.add(text2); panel.add(text3); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); double x=0.0; double y=0.0; double z=0.0; Point3d[] po1=new Point3d[1]; po1[0]=new Point3d(x,y,z); float[] colorPo1={1.0f,0.0f,0.0f}; PointArray ge1=new PointArray(po1.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3); ge1.setCoordinates(0,po1); ge1.setColors(0,colorPo1); Appearance appp1=new Appearance(); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ); appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE); PointAttributes ppo1=new PointAttributes(); ppo1.setPointSize(25.0f); ppo1.setPointAntialiasingEnable(true); appp1.setPointAttributes(ppo1); Shape3D gggrid1=new Shape3D(ge1,appp1); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_READ); gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE); Transform3D tr=new Transform3D(); Vector3d vector=new Vector3d(a,b,c); tr.setTranslation(vector); trans1.setTransform(tr); trans1.addChild(gggrid1); root.addChild(trans1); universe.getViewingPlatform().setNominalViewingTransform(); universe.addBranchGraph(root); text1.addActionListener(new Listener1()); text2.addActionListener(new Listener2()); text3.addActionListener(new Listener3()); } public class Listener1 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==text1){ try{ String str1=text1.getText().trim(); a=Double.valueOf(text1.getText()).doubleValue(); }catch(NumberFormatException ex){} } } } public class Listener2 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==text2){ try{ String str2=text2.getText().trim(); b=Double.valueOf(text2.getText()).doubleValue(); }catch(NumberFormatException ex){} } } } public class Listener3 implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource()==text3){ try{ String str3=text3.getText().trim(); c=Double.valueOf(text3.getText()).doubleValue(); }catch(NumberFormatException ex){} } } } public static void main(String[] args) { JFrame f= new JFrame(); J3A7 frame=new J3A7(); frame.init(); f.getContentPane().add(frame,BorderLayout.CENTER); f.setSize(500,500); f.setTitle("Kuukan: ボタン"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }

  • Java3Dで三角形を回転させたい

    Java3D初心者です。 三角形を表示しy軸回転をさせて円すいのような形を作りたいのですが、なかなか進みません。 とりあえず三角形をを表示させるプログラムを作り、 それをRotationInterpolatorクラスに従って回転させるプログラムを作りたいのですが、エラーが出てしまいます。 ご指摘お願いします。 三角形プログラム↓ import java.applet.Applet; import java.awt.BorderLayout; import java.awt.event.*; import java.awt.GraphicsConfiguration; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; public class Sample3D3 extends Applet {  public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup();     TransformGroup objTrans = new TransformGroup(); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(objTrans);     Point3d[] vertices = new Point3d[3]; vertices[0] = new Point3d(-0.9, 0.5, 0.0); vertices[1] = new Point3d(-0.9, -0.9, 0.0); vertices[2] = new Point3d(0.0, -0.9,0.0); TriangleArray geometry = new TriangleArray(vertices.length,GeometryArray.COORDINATES);     geometry.setCoordinates(0, vertices);     Shape3D shape = new Shape3D(geometry);     objRoot.addChild(shape);     objRoot.compile();     return objRoot;} public Material material3; public TransformGroup transformGroup4; public Transform3D transform3D4; public Sample3D3() { setLayout(new BorderLayout()); GraphicsConfiguration config =            SimpleUniverse.getPreferredConfiguration();     Canvas3D c = new Canvas3D(config); add("Center", c);     BranchGroup scene = createSceneGraph(); SimpleUniverse u = new SimpleUniverse(c);  u.getViewingPlatform().setNominalViewingTransform();     u.addBranchGraph(scene);} public static void main(String[] args) { new MainFrame(new Sample3D3(), 400, 400); } } 回転プログラム↓ import java.applet.*; import java.awt.*; import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.applet.MainFrame; public class Jikken extends Applet { public Jikken() { Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); BorderLayout borderLayout = new BorderLayout();  this.setLayout( borderLayout);  this.add( canvas3D, BorderLayout.CENTER); SimpleUniverse simpleUniverse = new SimpleUniverse(canvas3D);  simpleUniverse.getViewingPlatform().setNominalViewingTransform(); BranchGroup objRoot = new BranchGroup(); DirectionalLight directionalLight = new DirectionalLight(); TransformGroup transformGroup = new TransformGroup(); Sample3D3 sample3D3 = new Sample3D3(); BoundingSphere boundingSphere = new BoundingSphere(); transformGroup.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); Alpha alpha = new Alpha(); RotationInterpolator rotationInterpolator = new RotationInterpolator(alpha,transformGroup); rotationInterpolator.setSchedulingBounds(boundingSphere); directionalLight.setInfluencingBounds(boundingSphere); transformGroup.addChild(rotationInterpolator); transformGroup.addChild(sample3D3); objRoot.addChild(transformGroup); objRoot.addChild(directionalLight); simpleUniverse.addBranchGraph(objRoot); } public static void main(String[] argV){ Jikken jikken = new Jikken(); MainFrame mainFrame = new MainFrame(jikken,500,500); } } これで回転プログラムを実行すると、 型 Group のメソッド addChild(Node) は引数 (Sample3D3) に適用できません。という内容のエラーが表示されます。 読みにくくてすみませんがよろしくお願いします。

    • ベストアンサー
    • Java
  • 1つのキューブが変化したのか、2つの画像があって表示が切り替えられただけなのか、教えてください。

    最近、Java3Dの学習を始めました。 そして、「ボタンを押すとキューブが回転する」プログラムを作成しました。 下記のプログラムの場合、 1.最初に表示されていたキューブの座標が変化して表示された 2.「1面だけ表示されるキューブ」と「回転後のキューブ」の2つの画像がもともとあって、その画像が入れ替えられて表示された のどちらなのでしょうか? 私は1.のつもりで作成しました。 回答お願いいたします。 import java.awt.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; import javax.swing.*; import javax.swing.JApplet.*; import javax.swing.JFrame.*; import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.universe.*; public class bAL extends JApplet { JButton b1; GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(config); SimpleUniverse universe = new SimpleUniverse(canvas); BranchGroup root = new BranchGroup(); ColorCube colorcube; public bAL() { setLayout(new BorderLayout()); add(canvas,BorderLayout.CENTER); JPanel panel = new JPanel(); add(panel,BorderLayout.NORTH); JButton b1 = new JButton("表示"); panel.add(b1); root.setCapability(BranchGroup.ALLOW_DETACH); root.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); TransformGroup tg = new TransformGroup(); colorcube = new ColorCube(0.3f); tg.addChild(colorcube); root.addChild(tg); universe.addBranchGraph(root); universe.getViewingPlatform().setNominalViewingTransform(); b1.addActionListener(new Listener1()); } public class Listener1 implements ActionListener { public void actionPerformed(ActionEvent e) { root.detach(); BranchGroup root =new BranchGroup(); TransformGroup tg = new TransformGroup(); Transform3D trX = new Transform3D(); trX.rotX(Math.PI/4.0); //回転(x軸) Transform3D trY = new Transform3D(); trY.rotY(Math.PI/4.0); //回転(y軸) Transform3D trZ = new Transform3D(); trZ.rotZ(Math.PI); //回転(z軸) trX.mul(trY); //合成変換(trX = trX*trY) trX.mul(trZ); //合成変換(trX = trX*trZ) tg.setTransform(trX); colorcube = new ColorCube(0.3f); tg.addChild(colorcube); root.addChild(tg); universe.addBranchGraph(root); } } public static void main(String[] args) { JFrame f = new JFrame(); bAL frame = new bAL(); frame.init(); f.getContentPane().add(frame,BorderLayout.CENTER); f.setSize(300,300); f.setTitle("ボタンでキューブが回転"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }

    • ベストアンサー
    • Java
  • Java 3Dで二次関数のグラフを描く

    Java3Dを使ってサーフボードを作ってみようと思っているのですが、初歩中の初歩からつまずいています。public BranchGroup createSceneGraph()の中に以下のようなコードを書いたのですが、load test can't be instantiatedと出ます(testはアプレットの名前です)。そもそもこのエラーがどのような物なのかも分からないのですが、以下のコードのどこがおかしいのか教えてください。お願いします。 //createSceneGraph()の一部 Point3d[] vertices = new Point3d[400]; double step = (1 - (-1)) / 400; int i = 0; for(double x= -1; x < 1; x += step){   // x座標が x と x+step の間を計算して線分で結   vertices[i] = new Point3d(x, f(x), 0.0);   vertices[1+1] = new Point3d(x + step, f(x+step), 0.0);   i += 2; } double f(double x){   return a*x*x + b*x + c; }

  • java3Dについておききします

    javaのバージョンは1.6.0_27です 困ってる内容は現在javaSDをEclipse3.5で使おうとjavaSDをインストールしてネットで調べながらやってますがうまくいいかないです いまどうなってるか画像をみて欲しいです 上手く言ってない理由はこのようなエラーが返ってなかなかすすみません 説明 リソース パス ロケーション 型 アクセス制限: 型 BranchGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 31 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 SimpleUniverse は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dutils.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 28 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 Transform3D は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 37 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 TransformGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 34 Java 問題 //****************************************************************************** //Java3D とりあえず動作確認するプログラム //カラーキューブ回転 //****************************************************************************** //============================================================================== //インポート・ファイル import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import java.util.Timer; public class Java3D_first_test { //============================================================================= //クラスのフィールド //仮想空間全体 SimpleUniverse universe; //オブジェクトのためのグループ BranchGroup group1; //オブジェクトの座標変換のためのグループ TransformGroup transform_group1; //オブジェクトの座標変換のためのクラス Transform3D transform1; //回転角を管理 float rot_value; //============================================================================= //メイン・メソッド public static void main(String[] args) { Java3D_first_test test = new Java3D_first_test(); } } javaSDのライブラリはインポート文はエラー返ってないですが・・・ お優しくお願いします。なにが原因かわからずじまいな状態です

    • ベストアンサー
    • Java
  • java の配列についての質問です。

    java の配列についての質問です。 java 及び C++についての知識は初心者です。 public abstract class Plan implements Shapeable { Shape[] shape = new Shape[5]; Shape[0] = new Rectangle(10,10,10,10); // x,y 座標 及び 長さ、高さ Shape[1] = new Triangle(10,10,30,10,20,20); // 3点間の座標        Shape[2] = new Triangle(20,10,40,10,30,20);        Shape[3] = new Triangle(15,15,35,15,25,25); Shape[4] = new Circle(20,20,20); // 円の座標と半径     public float[] calculaterAreas(){ ??????????????????? } 内容としては複雑なのですが、三角形、四角形、円の面積をShapeというclassの配列にあるデータ(座標や長さなど) を使ってShapeの配列のデータを置き換えてfloatのデータとして返すんですが・・・・。どうやっていいのかさっぱり わかりません。面積については、Rectangle,Triangle,Circleのクラスでそれぞれ計算できるようになっているのですが、それを持ってくる方法もわかりません・・・どうしたらいいのか教えてください 宜しくお願いします。 ちなみに Rectangle,Triangle,Circle class の area の メソットは --- Rectangle class public class Rectangle extends Shape{ int x; int y; int width; int height; public float area(Rectangle r) { return r.width * r.height; } --- Circle class public class Circle extends Shape{ int x; int y; int radius; public float area(Circle c) { return (float) (c.x * c.y * 3.14); } } --- Triangle class public class Triangle extends Shape{ int x; int y; int x2; int y2; int x3; int y3; public float area(Triangle t) { float dt1,dt2,dt3; float s1; float area1; dt1 = Point.distance(x, y); // Point は dt2 = Point.distance(x2, y2); dt3 = Point.distance(x3, y3); s1 = (dt1+dt2+dt3)/2; area1 = (float) Math.sqrt((s1-dt1)*(s1-dt2)*(s1-dt3)); return area1; } } *** Shape class public abstract class Shape implements Shapeable { public abstract float area(Shape obj); } *** Shapeable インターフェイス public interface Shapeable { float area (Shape obj); } ** コンストラクター等は省略してあります。

    • ベストアンサー
    • Java
  • 頂点座標の操作

    Point3d[] vertices = new Point3d[10]; vertices[0] = new Point3d( 0.0, 0.0, 0.0); vertices[1] = new Point3d( 0.1, 0.0, 0.0); ・ ・ ・ という感じで頂点座標を指定して、IndexedTriangleArrayクラスで三角形のポリゴンの集まりを作ったんですが、この頂点座標の、例えばx成分の値だけを後から操作することは可能でしょうか? 本やWebで調べたときによく見かけた「Transform3D」の説明文を読んだ限りでは頂点ごとの移動、という風に解釈したのですが…

  • テキストフィールドかの色情報からムービークリップの色が変わるようにした

    テキストフィールドかの色情報からムービークリップの色が変わるようにしたいです。ActionScript3.0です。 ●colBox2というテキストフィールドがあり、bmpData(BitmapData型)という場所で取得したRGB色情報が表示されるようになっています。(例えば赤ならFF0000というように)。 var colBox2:TextField = new TextField(); colBox.x = 450; addChild(colBox2); ●bmpData上でマウスを上げたらその場所の色情報がcolBox2上に表示されて、colBox2上のテキストを読み取って、boardというムービークリップの色が変わるようにしたいのですが、エラーこそ出ないですが、boardの色は変わらないです。どうずれば変更できるのでしょうか?宜しくお願いします。 var colorTrans:ColorTransform = new ColorTransform(); var trans:Transform = new Transform(board); trans.colorTransform = colorTrans; copy.addEventListener(MouseEvent.MOUSE_UP,mouseUp) function mouseUp(evt:MouseEvent){ var pixelValue:uint = bmpData.getPixel(evt.stageX,evt.stageY); colBox2.text = pixelValue.toString(16);//取得したカラーを代入 colorTrans.color = "0x" + colBox2.text as uint; trans.colorTransform = colorTrans; }

    • ベストアンサー
    • Flash
  • Unityの質問です。

    ボタンを押すと、キャラクターの真後ろにオブジェクトが出現するようにしたいのですが、 using UnityEngine; using System.Collections; [ExecuteInEditMode()] public class GUIController : MonoBehaviour { public CharacterController characterController; public GameObject character; public GameObject domino; private Vector3 objPosition; // Use this for initialization void Start () { objPosition = new Vector3 (0, 0, 0); } void OnGUI(){ if(GUI.Button(new Rect(600, Screen.height - 160, 120, 120), "おす")){ Debug.Log("ぼたん"); float x = characterController.transform.localPosition.x; float y = characterController.transform.localPosition.y + 0.5f; float z = characterController.transform.localPosition.z - 0.64f; objPosition.Set(x, y, z); Debug.Log (x+","+y+","+z); GameObject domino_prefab = (GameObject)Instantiate(domino,objPosition, characterController.transform.rotation); } } } こうしてみたのですが、うまくキャラクターの真後ろにオブジェクトが出てきてくれません。 どなたか助けてください!