Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
3 / 3 / 0
Регистрация: 28.09.2012
Сообщений: 86

Java3D

31.10.2012, 17:05. Показов 1878. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро всем.

Работаю с Java3D.
Привожу код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package java3d;
 
/**
 *
 * @author IT3
 */
 import javax.vecmath.*;
 import java.awt.*;
 import java.applet.*;
 import java.awt.event.*;
 import java.net.URL;
 import javax.media.j3d.*;
 import com.sun.j3d.utils.universe.*;
 import com.sun.j3d.utils.geometry.*;
 import com.sun.j3d.utils.image.*;
 import com.sun.j3d.utils.applet.MainFrame;
 
 public class Java3D extends Applet {
 
 public static void main(String[] args) {
//--------------------------------------------------------------------------------[Page 24]15 
 new MainFrame(new Java3D(), 480, 480);
 String path = System.getProperty("java.library.path");
 System.out.println(path);
 
 }
 
 private SimpleUniverse su;
 
 public void init() {
 GraphicsConfiguration gc =
 SimpleUniverse.getPreferredConfiguration();
 Canvas3D cv = new Canvas3D(gc);
 setLayout(new BorderLayout());
 add(cv);
 BranchGroup bg = createSceneGraph();
 bg.compile();
 su = new SimpleUniverse(cv);
 su.getViewingPlatform().setNominalViewingTransform();
 su.addBranchGraph(bg);
 }
 
 public void destroy() {
 su.cleanup();
 }
 
 private BranchGroup createSceneGraph() {
 BranchGroup root = new BranchGroup();
 TransformGroup spin = new TransformGroup();
 spin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
 root.addChild(spin);
 // 3d text
 Appearance ap = new Appearance();
 ap.setMaterial(new Material());
 Font3D font = new Font3D(new Font("Helvetica", Font.PLAIN, 1),
 new FontExtrusion());
 Text3D text = new Text3D(font, "Java 3D");
 Shape3D shape = new Shape3D(text, ap);
 // transform for text
 Transform3D tr = new Transform3D();
 tr.setScale(0.2);
 tr.setTranslation(new Vector3d(-0.35,-0.15,0.75));
 TransformGroup tg = new TransformGroup(tr);
 root.addChild(tg);
 tg.addChild(shape);
 // globe
 ap = createAppearance();
 spin.addChild(new Sphere(0.7f,
 Primitive.GENERATE_TEXTURE_COORDS, 50, ap));
 // rotation
 Alpha alpha = new Alpha(-1, 6000);
 RotationInterpolator rotator =
 new RotationInterpolator(alpha, spin);
 BoundingSphere bounds = new BoundingSphere();
 rotator.setSchedulingBounds(bounds);
 spin.addChild(rotator);
 // background and lights
 Background background = new Background(1.0f, 1.0f, 1.0f);
 background.setApplicationBounds(bounds);
 root.addChild(background);
 AmbientLight light =
 new AmbientLight(true, new Color3f(Color.red));
 light.setInfluencingBounds(bounds);
 root.addChild(light);
//------------------------------------------------------------------------------[Page 25]75 
 PointLight ptlight = new PointLight(new Color3f(Color.white),
 new Point3f(3f,3f,3f), new Point3f(1f,0f,0f));
 ptlight.setInfluencingBounds(bounds);
 root.addChild(ptlight);
 return root;
 }
 
 private Appearance createAppearance(){
 Appearance ap = new Appearance();
 URL filename =
 getClass().getClassLoader().getResource("c:/earth.jpg");
 TextureLoader loader = new TextureLoader(filename, this);
 ImageComponent2D image = loader.getImage();
 Texture2D texture =
 new Texture2D(Texture.BASE_LEVEL, Texture.RGBA,
 image.getWidth(), image.getHeight());
 texture.setImage(0, image);
 texture.setEnable(true);
 texture.setMagFilter(Texture.BASE_LEVEL_LINEAR);
 texture.setMinFilter(Texture.BASE_LEVEL_LINEAR);
 ap.setTexture(texture);
 return ap;
 }
 }
Все библиотеки загружены. Нет ни одной ошибки, но картинка для текстуры не подгружается.
Заранее спасибо.
Вложения
Тип файла: rar Java3D.rar (17.0 Кб, 30 просмотров)
Тип файла: rar Libraries.rar (1.68 Мб, 22 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.10.2012, 17:05
Ответы с готовыми решениями:

java3d
Всем доброго времени суток. Тут такое дело. Решил попробовать поработать с java3d. И в процессе работы встала такая проблема: как...

NetBeans Java3D
Как включить поддержку Java3D в NetBeans 6.91 ? Я только начинаю работать с Java3D. Добавлено через 10 минут Что нужно установить...

Why Java3D 1.3 (and early) doesn't work with j2sdk1.4.1_01 ?
Hello, Java3D demos and other J3D-programs didn't work with either DirectX and OpenGL versions of Java3D 1.3 on j2sdk1.4.1_01. ...

1
3 / 3 / 0
Регистрация: 28.09.2012
Сообщений: 86
31.10.2012, 17:57  [ТС]
С помощью Всевышнего разобрался сам. Кому будет интересно, исправьте
ap.setTexture(texture); на ap.setTexture(loader.getTexture());
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.10.2012, 17:57
Помогаю со студенческими работами здесь

Java3D, отрендеренную картинку нужно сохранять в файл на диск, а не отображать на экране
Вот есть простой стандартный пример: import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import...

Срочно спец по Java3D, swing
Срочно нужен профи по Java3D, swing для доработки проекта. Писать в ICQ четыре-6-5 0-3-три 9-2-ноль


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru