elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  dibujar en 3D
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: dibujar en 3D  (Leído 684 veces)
s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
dibujar en 3D
« en: 22 Diciembre 2018, 22:19 »

Estoy haciendo una app para controlar una cnc router y necesito generar una imagen en 3D a partir de un archivo gcode...

Es posible en Vb.net dibujar lineas en 3D indicando las coordenadas x y z de la misma forma que se hace con el system.drawing2D??

Gracias!!!!!


En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.337


Ver Perfil
Re: dibujar en 3D
« Respuesta #1 en: 24 Diciembre 2018, 15:57 »

En primer lugar este es el espacio para  visual basic 6 y anteriores. el foro de visual Basic NET es otro...

En segundo lugar, claro que se puede. Ahora mismo no recuerdo si hay un espacio de nombres reservado para ello...
...pero a las duras, simplemente necesitas una función para convertir las cordenadas 3D en 2D y luego usar Drawing2D para dibujarlas.

Desde luego mucho mejor crear una clase que empaquete todo, así puedas tener medidas del mundo3d, factor de escala, y cordenadas de rotación.

Si vas a dibujar más de un objeto 3D y cada uno con sus repectivas cualidades, entonces además necesitarás una clase que actúe de colección y reciba todos los objetos contenidos en él... vamos un pequeño motor 3d...

...si saco tiempo hoy o mañana, a ver si te pongo una función de proyeccción (que es  el nombre que recibe la conversión de cordenadas 3D en cordenadas 2D, que son las que se dibujan en la pantalla).


En línea

s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
Re: dibujar en 3D
« Respuesta #2 en: 25 Diciembre 2018, 12:00 »

Muchas gracias por la respuesta NEBIRE

Si algun moderador puede que mueva el post no me di cuenta sorry :(

Usando una funcion de proyeccion no podre girar la imagen con el raton no???

He estado indagando por internet y he visto la opcion de usar los directX aun que parece complicada la cosa....:(
« Última modificación: 25 Diciembre 2018, 12:02 por s_azazel » En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.337


Ver Perfil
Re: dibujar en 3D
« Respuesta #3 en: 25 Diciembre 2018, 17:07 »

Muchas gracias por la respuesta NEBIRE

Si algun moderador puede que mueva el post no me di cuenta sorry :(

Usando una funcion de proyeccion no podre girar la imagen con el raton no???

He estado indagando por internet y he visto la opcion de usar los directX aun que parece complicada la cosa....:(

Con directX, se puede hacer de todo, pero en efecto, se requiere empolvarse en DirectX... es toda una tecnología por sí misma, que reqiere su propia curva de aprendizaje... lo mismo que utilizar cualquier otro motor 3D...

La cuestión es... ¿qué necesitas hacer?.
A - Si es tan solo lo que que dices al abrir el tema,(importar de un fichero datos 3D para dibujarlos) posicionar unas líneas dadas sus cordenadas 3D, te basta esa función que te digo. Esto te lo puedo poner más tarde, quizás mañana porque hoy tengo el día completo.

B - Si precisas además (de dibujar) poner rotación, desplazamiento y escala necesitas además otras funciones que roten, desplacen y escalen las cordenadas 3D. Esto implica (por razones de eficiencia) multiplicación de matrices, con lo que se añade un puñado de pequeñas funciones adicionales... Esto da más pereza, pero igualmente te miraría de ponerlo mañana o con más tiempo.

C - Si precisas tener control de muchos objetos, y ya no te basta con líneas, quieres cortar las líneas que queden tapadas por otras, ó meter texturas, tratar luz, colisiones, etc... entonces esto escapa de la ayuda de un foro, pero sobretodo el tiempo que uno está dispuestos a dedicar a ayudar... directamente es mejor que busques como usar un motor 3D, ya hecho. DirectX y OpenGL, serían tu punto de mira inicial, aunque los hay más específicos para según que tareas...

En fin declara cual de los 3 sería tu caso... para orientarte en la dirección que precisas.

Y sí, el ratón puede usarse para girar, tratando los eventos de ratón y decidiendo claramente que ejes se mueven con que eje del ratón (el eje Z, puede simularse con movimientos en diagonal, en tanto que los ejes X e Y con movimientos en X e Y del ratón)... (para esto estaríamos hablando como mínimo del caso "B").

Basicamente con cada moviento del ratón recalculas los ángulos de vista, se borra la imagen y se recrea de nuevo. Para que funciones en tiempo real, el cálculo debe ser fluído, lo que depende directamente d ela cantidad de objetos a dibujar y calcular y de la eficiencia del cálculo. Piensa que un cálculo como el que te sugiero, es apto sólo para unas pocas miles de líneas, si es más pesado, el cálculo puede demorarse y no será fluído en tiempo real... en tal caso hay que recurrir a usar motores cuyo cálculo se realiza directamente con la GPU, en vez de con la unidad flotante de la CPU...
« Última modificación: 25 Diciembre 2018, 17:11 por NEBIRE » En línea

s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
Re: dibujar en 3D
« Respuesta #4 en: 25 Diciembre 2018, 23:34 »

Muchisimas gracias!!!! Mi caso sobraria con el la opcion B :)
En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.337


Ver Perfil
Re: dibujar en 3D
« Respuesta #5 en: 26 Diciembre 2018, 01:18 »

Ok... Mañana miro de sacar un tiempito y te pongo un sencillo ejemplo que puedas explorar, entender, completar y ampliar...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dibujar Arbol AVL
Java
JDtoar 3 10,457 Último mensaje 23 Abril 2008, 06:12
por JDtoar
Dibujar en java!!!!
Java
danielo- 7 8,217 Último mensaje 20 Noviembre 2009, 10:54
por danielo-
Dibujar forma en C#
.NET (C#, VB.NET, ASP)
TomaSs 1 1,447 Último mensaje 3 Octubre 2012, 16:00
por seba123neo
Dibujar línea
Java
JavMan 7 3,238 Último mensaje 31 Enero 2013, 21:42
por JavMan
Dibujar Arbol
Programación C/C++
SantyXDz 3 2,040 Último mensaje 5 Noviembre 2013, 08:03
por edr89
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines