Zapętliłam się w mojej funkcji...

0

chodzi o to ze mam stworzyc funkcje powstajaca na wyswietlaczu gdzie jego wymiar wynosi(128,68) a poza tym ma przyciskiem ta funkcja zmieniac sie, i w sumie powstalo mi takie cos banalnego ale nie dziala...
ominelam temat zabawy w warunki aby x byl mniejszy od 128 a y od 68 i stwierdzilam ze wstawie stale w erach,
tylko nie wiem czy wtedy moge w ten sposob moje "t" tak warunkowac, moze dlatego nie dziala...
bylabym wdzieczna za jakakolwiek porade

int main(void)
{
    int x,y;
    int R=15;
    int r=5;
    // x=(0,128) y=(0,68) R>r>0 t=R/r
    int przycisk;

    lcdInit();
    lcdCls();

    while(1)
    { 
        for (int t=0; t<20; t++)
        {
            przycisk=IOPIN0;
            if(przycisk & (1<<4)) //jeśli SW0 nie jest wciśnięty
            {
                x=(R-r)cos(t)+r*cos(t*(R-r)/r)+R;
                y=(R-r)sin(t)-r*sin(t*(R-r)/r)+R;

                lcdSetPixel(x,y);
            }

            else //jeśli wciśnięty
            {
                x=((R+5)-(r+2))cos(t)+(r+2)*cos(t*((R+5)-(r+2))/(r+2))+(R+5);
                y=((R+5)-(r+2))sin(t)-(r+2)*sin(t*((R+5)-(r+2))/(r+2))+(R+5);

                lcdSetPixel(x,y);
            }
        }

    delay(560000);
    lcdCls();
    }
return 0;
}

sformatowanie kodu i dodanie znacznika <code class="cpp"> - fp

2

podpowiedź (odpowiedz sobie na pytania):

for (int t=0; t<20; t++)
...
sin(t)

sin(0)=?
sin(1)=?
sin(2)=?
sin(3)=?
...

W jakich jednostkach podajemy wartości do funkcji sinus? W jaki sposób wyświetlić zwykłe koło?

Spróbuj zmodyfikować poniższą funkcję parametryczną, tak żeby wyświetlić koło na ekranie:
http://fooplot.com/#W3sidHlwZSI6MiwiZXF4IjoiNTAqY29zKHMpIiwiZXF5IjoiNTAqc2luKHMpIiwiY29sb3IiOiIjZmYwMDAwIiwic21pbiI6IjAiLCJzbWF4IjoiMjAiLCJzc3RlcCI6IjEifSx7InR5cGUiOjEwMDAsIndpbmRvdyI6WyIwIiwiMTAwIiwiMCIsIjEwMCJdfV0-

2

Nie wygląda na to, żeby się zapętlał (poza tym while(1), ale zakładam, że to o to chodziło).

Może najpierw sprawdź wyniki tych obliczeń.

Tam są pozamykane nawiasy bez znak arytmetycznego - czyżby zabrakło mnożenia? ;)

(R+5)-(r+2))sin

(R-r)sin

0

x=(R-r)sin(t)+rsin(t(R-r)/r)+R;
y=(R-r)sin(t)-rsin(t(R-r)/r)+R;

w x zamiast sin powinien byc cos,=> x=(R-r)cos(t)+rcos(t*(R-r)/r)+R;
i faktycznie w elsie przed sinusem powinien byc ()*sin

ale czy nie musze gdzies dodatkowo definiowac ze wlasciwie to praktycznie t=R/r ?

1

A dlaczego właściwie to praktycznie są równe skoro r i R są stałe a t się zmienia w pętli?

0

ah faktycznie, przeciez na latwizne poszlam i obeszlam temat definiowania warunkow dla R,r oraz dla x,y
czyli powinno dzialac jesli zmienie wartosci R i r na odpowiednie
dziekuje

1 użytkowników online, w tym zalogowanych: 0, gości: 1