Sospecho que existe un riesgo de optimización prematura aquí. Además, ten cuidado con tu geometría. Su enfoque opuesto/adyacente es una propiedad de triángulos en ángulo recto, ¿es eso lo que realmente tiene?
Estoy asumiendo sus puntos son planas, y así para el caso general que tenerlos de manera implícita que representa dos vectores formar el origen (v1 v2 llamar a éstos), por lo que su ángulo es
theta = arccos (punto (v1, v2)/(| v1 || v2 |)) donde |. | es la longitud del vector
Hacer esto más rápido (asumiendo la necesidad) dependerá de muchas cosas. ¿Conoces las longitudes de los vectores, o tienes que calcularlos? ¿Qué tan rápido puede hacer un producto escalar en su arquitectura? ¿Qué tan rápido es acos? En algún momento, trucos como la búsqueda de tablas (probablemente interpolados) podrían ayudar, pero eso le costará precisión.
Sin embargo, todos son intercambios, realmente no hay una respuesta general a su pregunta.
[editar: Comentario añadido]
me gustaría volver a insistir en que a menudo jugando "x es más rápido" es un poco de un juego de tazas con las CPU moderna y compiladores de todos modos. No lo sabrá hasta que lo mida y rebaje el código generado. Cuando llegas al punto en el que realmente te importa a este nivel por un fragmento (con suerte pequeño) de código, puedes descubrir en detalle qué está haciendo tu sistema. Pero es laborioso. Tal vez una mesa es buena. Pero tal vez tengas cálculos rápidos de vectores y un pequeño caché. etc. etc. Todo equivale a "depende". Lo siento por eso. Por otro lado, si no ha alcanzado el que realmente le importa tanto este código ... probablemente no debería estar pensando en este nivel en absoluto. Hacer lo correcto. Hazlo limpio (lo que significa abstracción y código). Entonces preocúpate por la sobrecarga.
Es posible que desee comprobar su enlace - y dejar de jugar en el trabajo! :-) – tvanfosson
"Big O" ?? Por favor, no llame todo lo relacionado con la eficiencia por esa denominación. El cálculo será O (1). Pero eso no significa nada, definitivamente no significa que sea rápido. – bart
Ok, cambió el título. Lo siento, todavía estoy recogiendo esto! – Skilldrick