Я использую Mathematica 8, и я борюсь с текстурированием. Хотя текстурирование многогранных объектов оказалось относительно простым, я столкнулся с проблемой, пытающейся текстурировать сферу. В документации единственный способ текстуры показанной сферы - использовать SphericalPlot3D
, что, IMHO, является решением kludgey, тем более, что я пытаюсь выполнить операции (например: перевод) в сфере. In Toto, мой вопрос: есть ли способ текстурирования примитива сферы?Текстурирование примитива сферы
ответ
Вы не можете напрямую структурировать Sphere
, но вы можете создать текстурированную сферу, используя, например, SphericalPlot3D
и извлеките первую часть, чтобы получить примитив, с которым вы можете манипулировать Translate
. Например
sphere = SphericalPlot3D[1, th, phi, Mesh -> False, PlotPoints -> 25,
PlotStyle -> {Opacity[1], Texture[ExampleData[{"ColorTexture", "GiraffeFur"}]]},
TextureCoordinateFunction -> ({#4, #5} &)][[1]];
Graphics3D[Translate[sphere, {{0, 0, 0}, {2, 2, 2}}]]
Нечто подобное будет полезно:
sphere = SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi},
TextureCoordinateFunction -> ({2 #5, 1 - 2 #4} &),
PlotStyle -> { Lighting -> "Neutral", Axes -> False,
Boxed -> False, Texture[texture]}, Mesh -> None][[1]];
F[k_] := Graphics3D[ Rotate[ sphere, k, {2, 1, 6}, {0, 0, 0}], Boxed -> False]
Теперь мы можем анимировать текстурированную сферу вращающуюся (вокруг вектора {2, 1, 6}
на якорь в точке {0,0,0}
):
Animate[F[k], {k, 0, 2 Pi}]
Нет, это то, что мне удалось сделать ... Я хочу текстурировать примитив Sphere *, созданный функцией Sphere []. – taktoa
Применение текстуры к 'Sphere []' в настоящее время невозможно. –
Просто для полноты картины, вы также можете создавать сферы с использованием текстур ParametricPlot3D
.
map = ExampleData[{"TestImage", "Lena"}];
sphere = ParametricPlot3D[{Cos[u] Sin[v], Sin[u] Sin[v], Cos[v]}, {u,
0, 2 Pi}, {v, 0, Pi}, Mesh -> None,
TextureCoordinateFunction -> ({#4, 1 - #5} &),
Lighting -> "Neutral", Axes -> False, Boxed -> False,
PlotStyle -> Texture[Show[map]]]
Если я правильно понимаю, ответ Хайке показывает, что первая часть результата является GraphicsComplex, что графический примитив.
- 1. Текстурирование сферы C#
- 2. Текстурирование сферы в THREE.js
- 3. Текстурирование сферы в OpenGL 3+
- 4. Текстурирование сферы в Cg-шейдере
- 5. Текстурирование сферы в OpenGL для iphone ES
- 6. Текстурирование сферы с помощью Three.js не работает на смартфонах
- 7. Текстурирование?
- 8. Текстурирование модели
- 9. Текстурирование OpenGL
- 10. Кастинг примитива vs Создание объекта примитива
- 11. Текстурирование не работает
- 12. VBO текстурирование не работает
- 13. Простое текстурирование в OpenGL
- 14. Текстурирование пирамиды в WebGL
- 15. Отключить текстурирование в OpenSceneGraph
- 16. Текстурирование прямоугольника OpenGL/WebGL
- 17. Текстурирование с пробелом сохранено
- 18. Текстурирование на 3D-модели
- 19. Текстурирование дерева в блендере
- 20. Офсетное текстурирование в шейдерах
- 21. текстурирование в OpenGl
- 22. OpenGL ES 2.0 текстурирование
- 23. three.js - требования текстурирование
- 24. Текстурирование 3D-моделей OpenGL
- 25. вернуть имя примитива
- 26. C# Обертка примитива
- 27. NSData для примитива
- 28. Сравнительная эффективность Java примитива
- 29. объект против примитива
- 30. Преобразование значений примитива int?
Связанный: [RegionPlot на поверхности единичного шара?] (Http://stackoverflow.com/q/5788842/616736) и [Как вы можете настроить пользовательскую 3D-графику для корректного отображения в Mathematica?] (Http: //stackoverflow.com/q/5603281/616736) – abcd