Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про java 3d? 
:(
    Опции темы
unkis
  Дата 8.5.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



пытаюсь начуится двигать крфические обекты.

В ниже преведенном примере я пытюсь создать конус и заставит его вокруг оси Y вращяться, но почему-то ничего не получается, может кто поможет, подскажет где ошибка?

а вот и код

Код

package de.unkis;

import javax.media.j3d.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.vecmath.*;

import sun.awt.windows.ThemeReader;

import java.awt.*;  
import java.awt.event.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*; 

import com.sun.j3d.utils.behaviors.vp.*;
import com.sun.org.apache.xalan.internal.xsltc.dom.Axis;


public class SnowMan extends JFrame implements ActionListener{
    public Canvas3D myCanvas3D; //The canvas to be drawn on.
      public JButton myButton;   //The exit button.
      SimpleUniverse simpUniv;

    public SnowMan() throws HeadlessException {
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        myButton = new JButton("Exit");
        myCanvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        //The objects to be shown on the canvas are created in this method.
        BranchGroup theScene = createSceneGraph();        
        //Put everything together in a simple universe:
        //The canvas to be drawn on
       simpUniv = new SimpleUniverse(myCanvas3D);

        //Move the viewer to a point so that the origin can be seen.
        simpUniv.getViewingPlatform().setNominalViewingTransform();
        //Add the objects in the scene.
        simpUniv.addBranchGraph(theScene);
        
        Mouse();
  
    }
    
    private void Mouse() {
         //This allows us to use the mouse to move the viewing platform.
        //Note that we have to import com.sun.j3d.utils.behaviors.vp.*;
        OrbitBehavior ob = new OrbitBehavior(myCanvas3D);
        ob.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0));
        simpUniv.getViewingPlatform().setViewPlatformBehavior(ob);
    }
    private BranchGroup createSceneGraph() {
        Appearance blueApp = new Appearance();
        setToMyDefaultAppearance(blueApp,new Color3f(0.517f,0.69f,1f));
        Appearance redApp = new Appearance();
        setToMyDefaultAppearance(redApp,new Color3f(1,0,0f));
            float r=0.05f;
            Cone k1 = new Cone(0.02f,2*r,redApp);
        Transform3D tfPlatform = new Transform3D();
        tfPlatform.rotX(Math.PI/2);
        TransformGroup tgPlatform = new TransformGroup(tfPlatform);
        tgPlatform.addChild(k1);

             BranchGroup theScene = new BranchGroup();
        
        
        TransformGroup tg4 = Tranlation(0,0,radius1,tgPlatform);
        
        
        
        ///////////////////////////////////////////////////////////////
        Transform3D HeadRotationAxis = new Transform3D();
        //HeadRotationAxis.rotZ(0.4*Math.PI);
         int timeStart = 2000;
         int noStartRotations = 2;
         int timeSlowRotation = 1500;
        
        
        Alpha HeadRotationAlpha = new Alpha(-1,Alpha.INCREASING_ENABLE,timeStart,0,timeSlowRotation,0,0,0,0,0);
        RotationInterpolator HeadRotationStart = new RotationInterpolator(HeadRotationAlpha,tg4,
                HeadRotationAxis,0,(float)Math.PI*2);
        
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
        HeadRotationStart.setSchedulingBounds(bounds);
        
        
        /////////////////////////////////////////////////////////////
        
       
        theScene.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        theScene.addChild(HeadRotationStart);
       
        
       
        theScene.compile();
        return theScene;
    }
private TransformGroup Tranlation(float x, float y, float z,Node figure){
        Transform3D myTr = new Transform3D();
        myTr.setTranslation(new Vector3f(x,y,z));
        TransformGroup myTRG = new TransformGroup(myTr); 
        myTRG.addChild(figure);
        return myTRG;
        }
    
    public static void setToMyDefaultAppearance(Appearance app, Color3f col)
      {
        app.setMaterial(new Material(col,col,col,col,150.0f));
      }

    public void actionPerformed(ActionEvent arg0) {
        dispose();
        System.exit(0);
        
    }

}


и MainApp.java

Код

package de.unkis;

import java.awt.BorderLayout;

public class MainApp {

    public static void main(String[] args) {
        
        SnowMan mySnowMan = new SnowMan();
        mySnowMan.setTitle("Aufgabe 5");
        mySnowMan.setSize(700,700);
        mySnowMan.setLayout(new BorderLayout());
        mySnowMan.add("Center", mySnowMan.myCanvas3D);
        mySnowMan.add("South",mySnowMan.myButton);
        mySnowMan.myButton.addActionListener(mySnowMan);
        mySnowMan.setVisible(true);
        
    }
}


Помогите найти ошибку, зарания благодарен.


--------------------
www.unkis.com
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.