Calcular ángulo entre 3 puntos
Jelou. Imaginar que tenéis 3 puntos, pues eso, ya está. No quería decira nada más. Un saludo. Esto, dicha la gilipollez planteo la pregunta. ¿cómo puedo calcular el ángulo entre 3 puntos? Lo necesito porque luego tengo de dar el valor de ese ángulo al ángulo entre 2 Bones y no sé muy bien cómo hacerlo. Gracias.
Calcular ángulo entre 3 puntos
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 anglebetwentwovectors pivotpoint point1 point2 = (tlocal v1 = normalize (point1 - Pivotpoint) tlocal v2 = normalize (point2 - Pivotpoint) tlocal cosine = Dot v1 v2 treturn (acos cosine).
)
Eso es lo que hará más o menos el protractor. Lo he comprobado y los resultados son exactamente iguales. Saludos.
Calcular ángulo entre 3 puntos
Edito:, al foro se le ha ido la pinza.
Calcular ángulo entre 3 puntos
Cita:
Edito:, al foro se le ha ido la pinza.
¿Por? ¿has notado algo extraño?
Calcular ángulo entre 3 puntos
Durante unos minutos, desaparecieron los foros, y solo aparecía uno. Y decía algo como que había 50 o 60 usuarios registrados. Algo realmente malo pasó, pa mi que estaba accediendo a datos antiguos o directamente a otro foro.
Calcular ángulo entre 3 puntos
Hemos estado actualizando el buscador, y para eso hemos tenido que parar el foro, pero deberíais haber visto un mensaje de estamos trabajando no el foro, un saludo.
Calcular ángulo entre 3 puntos
Ok. Gracias half. Luego lo pruebo a ver si consigo alinear bien los huesos. Saludos.
Calcular ángulo entre 3 puntos
Shenmue, le quitas el return a la función de half. Se gana algo en velocidad.
Calcular ángulo entre 3 puntos
Cita:
Shenmue, le quitas el return a la función de half. Se gana algo en velocidad.
Vaya, sabía que no hacía falta el return, pero no tenía idea que podía ralentizar el script. He mirado en la referencia y no dice nada al respecto.
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:
¿Por? ¿has notado algo extraño?
Ah sí, lo que pasó es que le di a publicar el mensaje y la conexión se cortó. Entonces refresqué para ver si había salido o no y no lo vi por ningún lado, así que, lo volví a enviar y resulta que sí estaba, lo que pasa es que no aparecía como último mensaje.
Y sí, es cierto que vi arriba del todo un mensaje diciendo que el foro estaría en mantenimiento un rato, pero no vi la página que normalmente sale avisando de ello. El foro seguía funcionando (al menos aparentemente). Saludos.
Calcular ángulo entre 3 puntos
Half, en la ayuda de Maxscript hay un capítulo how todo make it faster y dentro de el 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.
La verdad es que no he hecho la prueba yo mismo, pero si los chicos de Autodesk lo dicen, yo me lo creo.
Calcular ángulo entre 3 puntos
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.
Calcular ángulo entre 3 puntos
Justamente acabo de hacerlo, gracias Nessito. Anglea = acos (Dot v1 v2). Thanks.