FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Sorry :S:S ... necesito dibujar en un paintbox un triangulo de 45 grados usando los eventos del mouse (soy primeriza en esto :S:S)...
|
#2
|
||||
|
||||
Pues, a ver, me parece que sí te voy a pegar el rollo de la trigonometría:
Un triángulo se define por la longitud de sus tres lados (normalmente se nombrean como a, b y c) y los grados de sus tres ángulos (nombrados como A, B y C). El lado a es el opuesto al ángulo A, y así sucesivamente Para dibujar un triángulo necesitas saber tres de estos 6 datos, y lo que me ha despistado es que sólos sabemos uno: El ángulo de 45 grados. Vamos a poner un ejemplo: Supongamos que sabes este ángulo: A= 45º, y también sabemos dos lados a y b. Para calcular los otros tres datos tenemos los teoremas del seno y del coseno: Teorema del seno: a / sin (A) = b / sin(B) = c / sin(C) Teorema del coseno: a^2 = b^2 + c^2 - 2 * b * c * cos(A) b^2 = a^2 + c^2 - 2 * a * c * cos(B) c^2 = a^2 + b^2 - 2 * a * b * cos(B) Vale, pues con estas fórmulas podemos encontrar los datos que nos faltan. Una vez tenemos esto, el problema está en dibujar las líneas en las coordenadas correctas. Para ello vamos a partir de una posición fija (p.e. la coordenada 100, 100) que va a ser uno de los treas puntos del triángulo. Para obtener el segundo punto vamos a sumar la lado 'a' a la coordenada x, por tanto el segundo punto va a estar en (100+a, 100) Jugando un poco con la trigo, podemos encontrar que la coordenada x del punto que nos falta es: 100 - c * sin(90 - A) y la coordenada y de este punto es 100 - c * sin(A) Por lo tanto, tendrías que dibujar las líneas entre los siguientes puntos: (100, 100) (100 + a, 100) ( 100 - c * sin (90 - A) , 100 - c * sin(A) ) Donde todos los valores 100 corresponden al punto de inicio del triángulo. Uf! Espero que te sirva! Edu |
#3
|
||||
|
||||
Una respuesta muy elegante epuigdef.
Yo como simple que soy, me hubiese ayudado de un cuadrado con el mismo lado que el triángulo, despues hallo el punto medio de un lado y desde ahí lanzo dos líneas al lado opuesto. Sin darle muchas vueltas al asunto, creo que quedaría un Triángulo como el que se pide: Código:
|------| | /\ | | / \ | |/ \| |------|
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
||||
|
||||
Buenas!
El problema que tiene tu solución es que no se ha hablado de las longitudes de los lados. En tu caso estás suponiendo que contruyes un triángulo isósceles, con dos lados de 45º y dos lados iguales /los que "suben en diagonal". El problema pude ser más complejo, porque imagina que mantienes el primer ángulo a 45ª, y el lado inferior a la longitud dada. Ahora dibuja el segundo lado a una longitud diferente, y une los dos extremos que te quedan libres. Ahí tienes un triángulo con un ángulo de 45ª que no está inscrito en un cuadrado... Un saludo Edu |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Trabajar con angulos (grados, minutos, segundos) | onlytk | Varios | 6 | 15-11-2005 23:49:33 |
Como rotar x grados un bitmap ( o grafico en general ) | manoley23 | Gráficos | 2 | 28-07-2003 17:23:38 |
|