elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Algoritmo para procesar una circunferencia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo para procesar una circunferencia  (Leído 6,034 veces)
gonzas144

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Algoritmo para procesar una circunferencia
« 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:



Como me gustaria que quede



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.


En línea

lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: Algoritmo para procesar una circunferencia
« Respuesta #1 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
  1. struct Punto{
  2. int x;
  3. int y;
  4. };
  5.  
  6.  
  7. Punto origen={0, 0};
  8. a=360/p;
  9. for(int i=0;i<p;i++){
  10. Punto destino={r*cos(a*i), r*sin(a*i)};
  11. dibujarRecta(origen, destino);
  12. }
  13.  

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?


« Última modificación: 12 Junio 2013, 15:55 pm por tuket » En línea

luiggy2


Desconectado Desconectado

Mensajes: 439


¡ Hello word ! XD


Ver Perfil
Re: Algoritmo para procesar una circunferencia
« Respuesta #2 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
  1. struct recta{
  2. float a,b,c;
  3. };

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
  1. struct circle{
  2. float e, f, r;
  3. }
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!
En línea

" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] Problema para procesar datos en AJAX !!
PHP
Diabliyo 7 5,055 Último mensaje 14 Agosto 2008, 01:02 am
por Diabliyo
procesar imagen..
ASM
<[(x)]> 4 3,654 Último mensaje 5 Julio 2010, 20:56 pm
por lapras
Circunferencia o elipse
Programación General
marko1985 2 3,205 Último mensaje 2 Enero 2011, 03:24 am
por Siuto
dime el algoritmo que más te gusta... ejm:algoritmo del avestruz
Programación General
jhonatanAsm 0 4,486 Último mensaje 13 Mayo 2011, 01:30 am
por jhonatanAsm
Circunferencia C++
Programación C/C++
Themegajordan 1 1,625 Último mensaje 21 Mayo 2016, 00:31 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines