int main(void)
{
    int klawisz, dlugosc[2];
    int wektor1[] = {1, 2, 3, 4, 5};
    int wektor2[] = {10, 20, 30, 40, 50};
    
    do
    {
        printf("\nWybierz operacje na wektorach:\n  1 - odleglosc\n  2 - normy\n  3 - suma\n  4 - roznica\n\nPodaj cyfre: ");
        scanf("%d",&klawisz);
        if((klawisz != 1) || (klawisz != 2) || (klawisz != 3) || (klawisz != 4)) continue;
    }
    while((klawisz != 1) && (klawisz != 2) && (klawisz != 3) && (klawisz != 4));
    
    dlugosc[0] = sizeof wektor1/sizeof(int);
    dlugosc[1] = sizeof wektor2/sizeof(int);

    switch(klawisz)
    {
        case 1: odleglosc(wektor1, wektor2, dlugosc[0], dlugosc[1]);  break;
        case 2: normy(wektor1, wektor2, dlugosc[0], dlugosc[1]);      break;
        case 3: suma(wektor1, wektor2, dlugosc[0], dlugosc[1]);       break;
        case 4: roznica(wektor1, wektor2, dlugosc[0], dlugosc[1]);    break;
    }

    system("pause");
}
Пример #2
0
int main(){
	struct punkt p={1, -1};
	struct punkt q={2, 3};
	struct prostokat r;
	r.p1.x = 1; r.p1.y = 1;
	r.p2.x = 4; r.p2.y = 4;
	//r.p1.x = 18;
	//r.p2.y = 31;
	printf("%lf\n", odleglosc(p, q));
	printf("%d\n", spr(r, q));
}
Пример #3
0
void Kolo::mousePressed(int x, int y, int button){
    if (z_osu==1 && menu == 0 && kolka.size()!=0 && odleglosc(kolka[0]->xCircle, kolka[0]->yCircle, x, y) <= kolka[0]->promien)//0 wymusza klikanie w kolejności
    {
        kolka.erase(kolka.begin());
        wynik++;
    }
    else if (menu == 0) {
        if(wynik)
            wynik--;
    }
}
Пример #4
0
void Kolo::update() {
    if (z_osu==1 && menu==0){
        if ((j + rozmiar) < tab->wielkoscListy)
        {
            for (i = 0; i < rozmiar; i++)
            {
                test[i].real(tab->pobierzElement());
                test[i].imag(0);
            }
            
            fftPoprzednie = fftAktualne;
            fftAktualne = fft2(test);
            
            do {
                czasp = czas;
                czas = song.getPositionMS();
                if (czasp > czas)
                    menu=5;//ofExit();
            } while (czasp == czas);
            
        }
        else
        {
            menu=5;
            //ofExit();
        }
        
        j += rozmiar;
        
        (fftAktualne<fftPoprzednie)? roznica=TRUE :NULL ;
        if(!proba)
        {
            roznica=FALSE;
        }
        if (((fftAktualne - fftPoprzednie) > prog) /*&& (bazax.size() < MAX_KOL)*/)//dodawanie nowego kolka jeøeli rÛønica > prÛg
        {
            //  if (bazax.empty() || (opoznienie <= 0))//jeøeli jest wiÍcej niø MAX_KOL to nie dodaje
            proba=(kolka.empty() || ((kolka.back()->promien)<=MIN_OGRANICZENIE));// && roznica==TRUE) );
            //roznica porownuje fftaktualne z fftpoprzednie - zeby nie tworzyl nowej nutki, jesli dzwiek tylko wzrasta - np jakas dluzsza nuta - trzeba ocenic jak to lapie i ewentualnie wrocic do opoznienie
            //majac ta roznice wlasciwie nie korzystam z MAX_KOL - w spadajacych kolkach
            //osu jest bez zmian
            if (proba)
            {
                Kolo * nowe_kolo = new Kolo;
                nowe_kolo->xCircle = (int)fftAktualne % (1024 - 2 * PROMIEN) + PROMIEN;
                nowe_kolo->yCircle = (int)fftAktualne % (768 - 2 * PROMIEN) + PROMIEN;
                
                if (kolka.size() > 0)
                {
                   // cout << "jestem tu 1" << endl;
                    while (odleglosc(nowe_kolo->xCircle, nowe_kolo->yCircle, kolka.back()->xCircle, kolka.back()->yCircle) < 2 * PROMIEN)
                    {
                      //  cout << "jestem tu 2" << endl;
                        if (static_cast<float>(odleglosc(nowe_kolo->xCircle, 0, kolka.back()->xCircle, 0)) < 1.5 * static_cast<float>( PROMIEN))
                        {
                        //    cout << "jestem tu 3" << endl;
                            if (kolka.back()->xCircle < 700)
                                nowe_kolo->xCircle += 30;
                            else
                                nowe_kolo->xCircle -= 30;
                        }
                        else if (static_cast<float>(odleglosc(0, nowe_kolo->yCircle, 0, kolka.back()->yCircle)) < 1.5 * static_cast<float>( PROMIEN))
                        {
                       //     cout << "jestem tu 4" << endl;
                            if (kolka.back()->yCircle < 500)
                                nowe_kolo->yCircle += 30;
                            else
                                nowe_kolo->yCircle -= 30;
                        }
                    }
                    while (odleglosc(nowe_kolo->xCircle, nowe_kolo->yCircle, kolka.back()->xCircle, kolka.back()->yCircle) > 4 * PROMIEN)
                    {
                    //    cout << "jestem tu 20 " << endl;
                        if (static_cast<float>(odleglosc(nowe_kolo->xCircle, 0, kolka.back()->xCircle, 0)) > 2.8 * static_cast<float>( PROMIEN))
                        {
                      //      cout << "jestem tu 21 " << endl;
                            if (nowe_kolo->xCircle - kolka.back()->xCircle > 0)
                                nowe_kolo->xCircle -= 10;
                            else
                                nowe_kolo->xCircle += 10;
                        }
                        else if (static_cast<float>(odleglosc(0, nowe_kolo->yCircle, 0, kolka.back()->yCircle)) > 2.8 * static_cast<float>( PROMIEN))
                        {
                        //    cout << "jestem tu 22 " << endl;
                            if (nowe_kolo->yCircle - kolka.back()->yCircle > 0)
                                nowe_kolo->yCircle -= 10;
                            else
                                nowe_kolo->yCircle += 10;
                        }
                    }
                }
                
                nowe_kolo->promien = PROMIEN;
                nowe_kolo->czasKolka = TIME;
                //if(kolka.empty())
                //{
                    nowe_kolo->kolor.set(ofRandom(255), ofRandom(255), ofRandom(255));
                /*}
                else
                {
                    if(kolka.back()->kolor.red>230 || kolka.back()->kolor.g>230 || kolka.back()->kolor.b>230)
                    {
                        nowe_kolo->kolor.set(ofRandom(120,245), ofRandom(120,245), ofRandom(120,245));
                    }
                    
                    if(kolka.back()->kolor.r<90 || kolka.back()->kolor.g<90 || kolka.back()->kolor.b<90)
                    {
                        nowe_kolo->kolor.set(ofRandom(120,245), ofRandom(120,245), ofRandom(120,245));
                    }

               nowe_kolo->kolor=(kolka.back()->kolor+5);
                }*/
                kolka.push_back(nowe_kolo);
                roznica=FALSE;
            }
            //dodawanie nowego kolka je¿eli ró¿nica > próg
        }
        
        
        
        for (int i = 0; i < kolka.size(); i++)
        {
            kolka[i]->czasKolka = kolka[i]->czasKolka - 1;
            if (kolka[i]->promien >= MIN_OGRANICZENIE)
                kolka[i]->promien -= ZMNIEJSZANIE;
        }//zmniejszanie wszystkich kol wiêkszych od MIN_OGRANICZENIE
        
        for (int i = 0; i < kolka.size(); i++)
        {
            if (kolka[i]->czasKolka <= 0)
            {
                kolka.erase(kolka.begin() + i);
                if(wynik)
                    wynik--;
            }
        }//usuwanie tych które zniknely
        
    }
}