Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rysowanie pacmana

Ostatnio zmodyfikowano 2016-01-18 07:50
Autor Wiadomość
Garniturek
Temat założony przez niniejszego użytkownika
Rysowanie pacmana
» 2016-01-17 18:31:05
Witam, mam do narysowania Pacmana w Open GL. W mojej opinii tak napisany program, powinien go rysować, a on mi rysuje ucięte kółko (bez wcięcia). Dodam, że jestem bardzo słaby z Open GL (dopiero zaczynam). pomocy :)

C/C++
glBegin( GL_TRIANGLE_FAN );
int licznik = 0;
int licz = 1;
int licznik_2 = 0;
glVertex2f( 0.0, 0.0 ); //srodek kola
for( kat = 0.0; kat <( 2.0 * GL_PI ); kat +=( GL_PI / 32.0 ) )
{
    if( licznik_2 == 0 )
    {
       
        if( licz == 10 ) //oczywiscie te liczby to poglądowo, planuje tak, aby uzytkownik ustalal wielkosc
        {
            licz = licznik;
            licznik_2++;
        }
       
    }
    if( licz > 21 )
         licz = licznik + 1;
   
    if( licznik != licz )
    {
       
        x = 1.01 * sin( kat );
       
        y = 1.01 * cos( kat );
       
        glVertex2f( x, y );
       
    }
    licznik++;
    licz++;
}

glEnd();
P-143663
pekfos
» 2016-01-17 20:44:01
on mi rysuje ucięte kółko (bez wcięcia)
Czyli co?

C/C++
for( kat = 0.0; kat <( 2.0 * GL_PI ); kat +=( GL_PI / 32.0 ) )
{
    // (cały kod w pętli)
}
Po co te wszystkie warunki i liczniki? To nie jest do niczego potrzebne. Masz zacząć od pewnego kąta 0-30 stopni i narysować ileśtam trójkątów dla pokrycia 300-360 kolejnych stopni. Do tego wystarczy sama zmienna kat i może jeden warunek, chociaż da się i bez niego.

C/C++
x = 1.01 * sin( kat );
y = 1.01 * cos( kat );
glVertex2f( x, y );
Zmienne x i y masz tu tylko po to, by były. Przedłużasz kod nie wnosząc niczego.
P-143689
Garniturek
Temat założony przez niniejszego użytkownika
» 2016-01-17 21:29:29
Poprawiłem, ale problem ten sam, rysuje takie coś, a w moim rozumieniu powinien zrobić wcięcie jak u Pacmana ;)
http://www.fotoszok.pl/upload/244c2044.bmp

C/C++
glVertex2f( 0.0, 0.0 ); //srodek kola

for( kat = 0.0; kat <( 2.0 * GL_PI ); kat +=( GL_PI / 32.0 ) )
{
    cout << kat << " ";
    if( kat < 1 || kat > 3 )
    {
        x = 1.01 * sin( kat );
       
        y = 1.01 * cos( kat );
       
        glVertex2f( x, y );
    }
}


glEnd();
P-143695
pekfos
» 2016-01-17 21:45:03
Nie zrobiłeś tego, o czym pisałem.

C/C++
x = 1.01 * sin( kat );
y = 1.01 * cos( kat );
Odwrotnie.
P-143697
Garniturek
Temat założony przez niniejszego użytkownika
» 2016-01-17 22:01:25
Rzeczywiście, bezsensu te zmienne, ale problem pozostaje ten sam, nie potrafię tego narysować

C/C++
glBegin( GL_TRIANGLE_FAN );

glVertex2f( 0.0, 0.0 ); //srodek kola
for( kat = 0.0; kat <( 2.0 * GL_PI ); kat +=( GL_PI / 32.0 ) )
{
    if( kat < 1 || kat > 3 )
         glVertex2f( 1.01 * sin( kat ), 1.01 * cos( kat ) );
   
}

glEnd();
P-143698
pekfos
» 2016-01-17 22:34:43
Jak grochem o ścianę..
C/C++
glVertex2f( cos( kat ), sin( kat ) );
P-143704
Garniturek
Temat założony przez niniejszego użytkownika
» 2016-01-18 07:50:25
Ah. Przepraszam za moją ułomność. Dzięki wielkie za pomoc i cierpliwość!
P-143721
« 1 »
  Strona 1 z 1