Estoy usando Mathematica 8 y estoy luchando con texturizar. Aunque la textura de los objetos poliédricos ha demostrado ser relativamente simple, me tocó un problema al tratar de texturizar una esfera. En la documentación, la única forma de texturizar una esfera que se muestra es usando SphericalPlot3D
, que, en mi humilde opinión, es una solución de kludgey, especialmente porque estoy tratando de realizar operaciones (por ejemplo, traducción) en la esfera. En el toto, mi pregunta es: ¿hay alguna forma de texturizar una esfera primitiva?Texturizar una esfera primitiva
Respuesta
No se puede texturizar un Sphere
directamente, pero podría crear una esfera con textura utilizando, p. Ej. SphericalPlot3D
y extrae la primera parte para obtener una primitiva que puedes manipular con Translate
. Por ejemplo
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}}]]
Algo como esto será útil:
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]
Ahora, podemos animar una esfera con textura giratorio (alrededor del vector {2, 1, 6}
anclado en el punto {0,0,0}
):
Animate[F[k], {k, 0, 2 Pi}]
No, eso es lo que logré hacer ... Quiero texturizar una primitiva Esfera *, como la producida por la función Esfera []. – taktoa
Aplicar una textura a 'Esfera []' no es posible actualmente. –
simplemente para la corrección, también puede generar esferas con texturas usando 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]]]
Si he entendido bien, la respuesta de Heike muestra que la primera parte del resultado es un GraphicsComplex, que es un gráfico primitivo.
- 1. "esfera en una bolsa" proyección de avión a esfera
- 2. Android OpenGLES Renderizar para texturizar
- 3. Esfera - esfera detección de colisión -> reacción
- 4. Intersección entre una línea y una esfera
- 5. procesalmente generar una malla de esfera
- 6. Dibujando una esfera en OpenGL ES
- 7. Cálculo de una AABB para una esfera transformada
- 8. esfera con textura de Android
- 9. StructureMap: Inyectar una propiedad primitiva en una clase base
- 10. objeto frente a la primitiva
- 11. módulo de haskell recursión primitiva
- 12. OpenGL ES renderizar para texturizar, luego dibujar texturas
- 13. Primitiva JSON no válida: id
- 14. Definición de "primitiva de sincronización"
- 15. primitiva conexión ssh (nivel bajo)
- 16. Dibuje una esfera de color de coordenadas cartesianas en pymol
- 17. Encontrar una esfera delimitadora mínima para un tronco
- 18. Trazar un punto en el borde de una esfera
- 19. Encontrar el par de puntos más cercano en una esfera
- 20. calcular las normales de vértice de una esfera
- 21. Cómo uso la textura en una esfera en three.js
- 22. ¿Cómo crear una esfera pareja con triángulos en OpenGL?
- 23. coordenadas 3D en una esfera de latitud y longitud
- 24. ¿Cómo determinar el tipo primitivo de una variable primitiva?
- 25. ¿La primitiva tiene asignada una dirección de memoria?
- 26. Encontrar el orden más alto 1 en una primitiva Java
- 27. Java: ¿Por qué debo inicializar una variable local primitiva?
- 28. Cómo comprobar si una variable es primitiva en PHP
- 29. Rejilla hexagonal en esfera sin pentágono
- 30. Inicializando matriz primitiva a un valor
Relacionados: [RegionPlot en la superficie de la unidad de esfera?] (Http://stackoverflow.com/q/5788842/616736) y [¿Cómo se obtienen gráficos 3D personalizados para mostrar correctamente en Mathematica?] (Http: //stackoverflow.com/q/5603281/616736) – abcd