![]() |
|
Bienvenido a Foros 3DPoder.. Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! ! Si usted tiene algún problema con su registro, por favor , díganoslo aquí.
|
![]() ¿Te ayudo? |
|
|||||||
|
|
|
|
#1 |
|
Senior Member
Fecha de Ingreso: febrero-2005
Ubicación: politecnico/3D,3D/politecnico
Mensajes: 1,970
|
Jelou
Imaginar que teneis 3 puntos...pues eso,ya esta.No queria decira nada mas. 1 saludo ..... ehem...dicha la gilipollez planteo la pregunta.¿Como puedo calcular el angulo entre 3 puntos?.Lo necisto porque luego tengo de dar el valor de ese angulo al angulo entre 2 bones y no se muy bien como hacerlo. gracias |
|
|
|
| Enlaces patrocinados |
|
|
#2 |
|
H = E + L
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
|
Entre 3 puntos hay 3 ángulos posibles, así que de entre esos 3 puntos hay que escoger uno que sea el pivote (algo así como hace el protractor de MAX). Así que de esta forma la función sería tal como:
Código:
fn angleBetweenTwoVectors pivotPoint point1 point2 = ( local v1 = normalize (point1 - pivotPoint) local v2 = normalize (point2 - pivotPoint) local cosine = dot v1 v2 return (acos cosine) ) Saludos. |
|
|
|
|
|
#3 |
|
H = E + L
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
|
EDIT: ups, al foro se le ha ido la pinza...
Última edición por dsolo fecha: 06 nov 2006 a las 19:50. |
|
|
|
|
|
#5 |
|
·
Fecha de Ingreso: junio-2005
Mensajes: 1,254
|
durante unos minutos, desaparecieron los foros, y solo aparecía uno. Y decía algo como que había 50 ó 60 usuarios registrados. Algo realmente malo pasó, pa'mi que estaba accediendo a datos antiguos o directamente a otro foro.
.
__________________
"La vida es como el tetris, cuando llegan los palos no sabes como encajarlos" [SIGPIC]
|
|
|
|
|
|
#6 |
|
Administrador y fundador.
|
Hemos estado actualizando el buscador, y para eso hemos tenido que parar el foro, pero deberiais haber visto un mensaje de "estamos trabajando" no el foro, un saludo.
|
|
|
|
|
|
#7 |
|
Senior Member
Fecha de Ingreso: febrero-2005
Ubicación: politecnico/3D,3D/politecnico
Mensajes: 1,970
|
Ok.Gracias Half.Luego lo pruebo a ver si consigo alinear bien los huesos.
Salutiss |
|
|
|
|
|
#8 |
|
Senior Member
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 674
|
shenmue, quitale el return a la funcion de half. Se gana algo en velocidad
__________________
Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida. |
|
|
|
|
|
#9 | ||
|
H = E + L
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
|
Cita:
Así que he hecho una prueba con y sin return que llama a la función 10 millón de veces con vectores aleatorios y las diferencias son despreciables y unas veces una es más rápida y otras la otra (en la última prueba la función con return fue 2 segundos más rápida que sin return, 135.297 segundos por 137.359). ¿Dónde leíste que el return podía suponer una penalización? Cita:
Y sí, es cierto que ví arriba del todo un mensaje diciendo que el foro estaría en mantenimiento un rato pero no ví la página que normalmente sale avisando de ello. El foro seguía funcionando (al menos aparentemente). Saludos. |
||
|
|
|
|
|
#10 |
|
Senior Member
Fecha de Ingreso: abril-2005
Ubicación: Madrid
Mensajes: 674
|
Half, en la ayuda de maxscript hay un capitulo "How to make it faster" y dentro de él un apartado "Do not use return, break, exit or continue" y pone varios ejemplos:
Código:
fn test1a v = (if v == true do return 1; 0) fn test1b v = (if v == true then 1 else 0) For 100000 iterations: test1a true -- 15890 msec. test1a false -- 78 msec. test1b true -- 47 msec. test1b false -- 62 msec.
__________________
Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida. |
|
|
|
|
|
#11 |
|
H = E + L
Fecha de Ingreso: marzo-2004
Ubicación: Entre dos vectores
Mensajes: 877
|
La verdad es que en las expresiones if/else que se asignan a una variable nunca pongo el return pero para retornar un valor en las funciones sí que lo utilizo siempre. La costumbre de C++.
En fin, será cuestión de acostumbrarse pero desde luego las diferencias que yo he visto no son tan grandes como indican los tests esos (a lo mejor en otras situaciones sí). Saludos. |
|
|
|
|
|
#12 |
|
Senior Member
Fecha de Ingreso: febrero-2005
Ubicación: politecnico/3D,3D/politecnico
Mensajes: 1,970
|
Justamente acabo de hacerlo,gracias nessito
AngleA = acos ( dot v1 v2) thanks |
|
|
|
![]() |
| Etiquetas Identificativas |
| angulo, calcular, entre, puntos |
| Usuarios activos actualmente viendo este tema: 3 (0 miembros y 3 visitantes) | |
| Herramientas | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Manual 3dsMax | 3dpoder | 3DStudio Max | 0 | 13 ago 2005 09:45 |
| Tracking automático con BOUJOU | 3dpoder | 3DStudio Max | 1 | 23 abr 2005 18:15 |
|
|