Título: Ayuda para resolver el programa Publicado por: petit_cm en 26 Marzo 2017, 13:14 pm Por favor, alguien podría ayudarme a realizar un código C que resuelva el siguiente problema? Necesito vuestra ayuda
"Realiza una función que, dado un punto en el plano, un radio y un número de lados, devuelva un vector con los vértices de un polígono regular con tales lados y radio, centrado en el punto dado. " Título: Re: Ayuda para resolver el programa Publicado por: MAFUS en 26 Marzo 2017, 13:39 pm ¿Cómo vas de trigonometría? :huh:
Título: Re: Ayuda para resolver el programa Publicado por: petit_cm en 26 Marzo 2017, 18:09 pm Bueno trigonometria me defiendo, pero esta funcion si sabes hacerla te agradeceria muchisimo que me pasases el codigo.
Muchas graciaas Título: Re: Ayuda para resolver el programa Publicado por: ivancea96 en 26 Marzo 2017, 18:35 pm ~No se hacen tareas~
Empieza por obtener la ecuación para sacar los puntos. Luego, solo es copiarla a C y agregar un par de formalidades de cualquier lenguaje de programación. Título: Re: Ayuda para resolver el programa Publicado por: MAFUS en 26 Marzo 2017, 23:16 pm Así es. Como dice Ivancea96 no se hacen tareas. Ajudamos a realizarlas, pero ofrecemos códigos hechos.
Título: Re: Ayuda para resolver el programa Publicado por: petit_cm en 27 Marzo 2017, 20:27 pm La principal duda que tengo es la función matemática para calcular la posición de los vertices a partir de el centro, el radio y el número de lados. Si me podeis ayudar a obtenerla, a partir de ahi puedo empezar a trabajar.
Título: Re: Ayuda para resolver el programa Publicado por: engel lex en 27 Marzo 2017, 20:28 pm Citar La principal duda que tengo es la función matemática para calcular la posición de los vertices a partir de el centro, el radio y el número de lados. que no sabes? muestra lo que has intentado y donde tienes la falla/duda Título: Re: Ayuda para resolver el programa Publicado por: petit_cm en 27 Marzo 2017, 20:32 pm Como obtener la posición del vértice a partir del radio, número de lados y el centro. No se como plantear la ecuación que me de como resultado esa posición.
Título: Re: Ayuda para resolver el programa Publicado por: engel lex en 27 Marzo 2017, 20:39 pm no me dices nada...
que no sabes plantear de la ecuación? (muestra la ecuación) Título: Re: Ayuda para resolver el programa Publicado por: petit_cm en 27 Marzo 2017, 20:43 pm Esto seria correcto para obtener las posiciones cartesianas x e y de cada vertice del poligono en un plano?
alpha = 360 / cantidad de lados del poligono radian = 180/PI xc + radio*cos(angulo/radian) yc + radio*sin(angulo/radian) angulo = angulo+alpha Título: Re: Ayuda para resolver el programa Publicado por: engel lex en 27 Marzo 2017, 20:48 pm quien es xc y yc? los sumas, pero no los asignas
Título: Re: Ayuda para resolver el programa Publicado por: ivancea96 en 27 Marzo 2017, 21:09 pm Esto seria correcto para obtener las posiciones cartesianas x e y de cada vertice del poligono en un plano? alpha = 360 / cantidad de lados del poligono radian = 180/PI xc + radio*cos(angulo/radian) yc + radio*sin(angulo/radian) angulo = angulo+alpha Es correcto. Y aquí es donde entra la parte de programación. Tienes que sacar N vértices, no 1. Así que tendrás que hacer esas ecuaciones N veces (bucle for). Código Haces eso tras cada cálculo, y calculas el siguiente, sin más. Ya lo tienes. Como detalle, las funciones cos() y sin() son de la librería <math.h>. A parte de eso, no deberías tener más problemas. Haz el programa, y si te encuentras con algún otro problema, coméntalo y pasa el código. Por cierto, los códigos ponlos en las etiquetas GeSHi (al hacer el mensaje, tienes arriba para colocarlas) Título: Re: Ayuda para resolver el programa Publicado por: petit_cm en 30 Marzo 2017, 17:00 pm He hecho esta función para calcular la coordenadas x e y de los vértices, pero no funciona y se que no esta bien hecha, me podéis ayudar a corregir los errores o decirme lo que falte? Muchas gracias
v[0] es la coordenada x del centro, v[1] es la coordenada y del centro, v[2] el radio y t el numero de lados. Programa hecho en lenguaje C Código
Título: Re: Ayuda para resolver el programa Publicado por: ivancea96 en 30 Marzo 2017, 22:48 pm Varios detalles...
En primer lugar, trata de ver los errores que te da el compilador, para corregir lo más básico: Pusiste angul en evz de angulo en la línea 5. Luego, pusiste angulo==0;. Eso no es una asignación, eso es una comparación. Una asignación es, como pusiste en los fors, 1 solo signo igual: Código Lo mismo en la línea 8. Luego... ¿Cómo quieres que sea la respuesta? En primer lugar, voy a suponer que a la función le pasas un array double* ya lleno y de tamaño t*2. Presupondré también que la respuesta es {x1, y1, x2, y2,... xN, yN}. Fíjate que en el segundo for, estás sobreescribiendo el array (por tanto, deshaciendo el trbaajo dle primer for). Tal vez quisieras algo así (con 1 for te llega): Código
Título: Re: Ayuda para resolver el programa Publicado por: petit_cm en 30 Marzo 2017, 22:52 pm Mi programa es este, consigo obtener un vertice, pero los valores x e y de este no son correctos y no consigo que muestre en pantalla todos los vertices, solo muestra uno, el primero. Hasta la linia 75 funciona correctamente. A partir de ahi no se obtiene el resultado deseado.
Código
Título: Re: Ayuda para resolver el programa Publicado por: ivancea96 en 31 Marzo 2017, 00:09 am Salió cortado mi mensaje anterior :X
Código
Y conrespecto a tu código de ahora... Donde calculas el Y, pusiste v[0] en vez de v[1]. |