Título: Algoritmo para procesar una circunferencia Publicado por: gonzas144 en 7 Junio 2013, 06:22 am Hola gente, necesitaria que me den una mano en un proyecto de Python que estoy haciendo. (ubique este topic en Programacion General ya que me gustaria discutir el algoritmo en pseudocodigo, despues yo me encargo de pasarlo a Py).
La idea es, yo tengo una circunferencia de Radio R, la cual esta a su vez dividida en N circunferencias menores. Me gustaria poder hacer dos cosas. a). Mapear toda la circunferencia de forma que quede dividida o grillada por rectas. b). Una vez grillada conseguir los puntos (x,y) de cada posicion de la grilla ,como si fuese una matriz pero con forma de circulo. El problema que se me presenta es que , es facil sacar el punto de partida, pero no se como sacar los puntos x,y restantes para poder crear todas las rectas. Imagenes de ejemplo: Mi proyecto: (http://s21.postimg.org/ap3ebyldj/Pantallazo_3.png) Como me gustaria que quede (http://www.youbioit.com/files/images/harddisk.jpg) Para generar una linea necesito los parámetros Punto(x,y) de inicio y Punto(x,y) de fin. El problema es que al moverme dentro del circulo el punto x,y de fin también se mueve, no se con que función trigonométrica calcular esos valores. Una vez que haya grillado todas las circunferencias la idea seria obtener los puntos x,y intermedios de cada 'sector' , generando asi un mapa del gráfico en pixeles. No se si se entendió la idea Gracias de antemano. Título: Re: Algoritmo para procesar una circunferencia Publicado por: lapras en 12 Junio 2013, 15:30 pm ¿Entonces tu problema es como dibujar las rectas?¿Digamos que quieres obtener los diferentes puntos de destino(porque el origen es siempre el centro)?
Pues a ver, para dibujar las rectas lo primero que tienes que hacer es decidir en cuantas partes quieres dividir el circulo(llamémosle p). La distancia entre una recta y la siguiente en ángulo será a=(360/p)º. Supongamos que el centro del círculo esta en (0,0). El punto que buscamos será (r*cos(k*a), r*cos(k*a)). r es el radio y k es una constante entera. Vayamos al código. El código que voy a poner es un pseudocódigo parecido a C(lo siento no se python). Código
Eso es lo que entiendo de tu pregunta a) La pregunta b) no la llego a entender porque no se a que puntos te refieres. ¿Quieres decir todos los puntos que estan dentro de un sector? Título: Re: Algoritmo para procesar una circunferencia Publicado por: luiggy2 en 14 Junio 2013, 00:06 am Solo añadir un aporte:
Una recta no sólo se puede representar con el punto origen y el punto final. La ecuación de una recta viene dada por a*x+b*y+c=0. Luego una recta la puedes guardar con una terna <a,b,c> (mi recomendación personal es que uses b=0.0 para verticales, y para el resto uses b=1.0 variando a y c para que sigan el convenio). Código
De igual manera, una circunferencia viene dada por (x-e)^2+(y-f)^2=r^2, donde <e,f> es el centro y r el radio. Código De esta manera, si quieres calcular el punto de corte entre una recta y una circunferencia, sólo tienes que resolver un sistema de ecuaciones (ten en cuenta que te saldrán dos soluciones) Un saludo! |