Circulo espiralado en c++

Publicado en 'Programación' por Klade, 25 Jun 2009.





  1. Klade

    Klade Miembro nuevo

    Registro:
    26 Abr 2009
    Mensajes:
    13
    Likes:
    0




    pliss ayudenme como dibujaria un circulo espiralado en c++ en entorno visual
    yo utilizo el borland builder 6 y me ayudo con el canvas pero hasta ahora no se como hacerlo espiralado o.o
     


  2. Carlitox

    Carlitox Miembro nuevo

    Registro:
    20 Nov 2007
    Mensajes:
    31
    Likes:
    0
    Facil. Mira, como dibujas un circulo? simplemente tienes que realizar un lazo utilizando la funcion parametrica del circulo.

    es decir:

    X = r * cos(a)
    Y = r * sen(a)

    donde r es el radio del circulo y a es el angulo que vas a ir variando conforme avanca el loop.

    Esto seria algo asi (pseudocodigo, ya tu lo pasas a C++):

    a=0
    r = 30
    while (a<=360)
    begin
    ___x = r*cos(a)
    ___y = r*sen(a)
    ___dibujaPunto(x, y)
    ___a++
    end

    Esto dibujaria un circulo de radio 30. Para una espiral lo unico que tienes que hacer es en cada iteracion del while disminuir el radio en 1:

    a=0
    r = 30
    while (a<=360)
    begin
    ___x = r*cos(a)
    ___y = r*sen(a)
    ___dibujaPunto(x, y)
    ___a++
    ___r--
    end


    Y eso es todo. Claro, la funcion "dibujaPunto" asumo que ya la tienes. Un detalle a tener en cuenta es que me parece que se trabaja mejor utilizando los angulos en coordenadas polares, pero esto no lo recuerdo bien. Investigalo y me dices algo.

    P.D: (las rayas las pongo en los algoritmos porque el editor no me permite hacer indentacion)
     
    Última edición: 25 Jun 2009