[ Aleksandar Ružičić @ 20.02.2006. 14:55 ] @
prvo, slika problema:
[img][att_url][/img]
trazi se ugao fi (izmedju prave l i prave p), prava l je odredjena tackama C(P,Q) i M (X,Y) a prava p tackama C(P,Q) i P(P, 0), takodje tacka C predstavlja centar kruga poluprecnika R. prava p je uvek paralelna y osi (koja je usmerena ka dole, kako vidite, tj ispod x ose su pozitivne a iznad negativne vrednosti) dok tacka M moze biti bilo gde van kruga (a i unutar, samo se nikad nece poklopiti sa C) a samim tim i prava l se moze naci u svim mogucim polozajima.

ja sam pokusao da radim preko obrasca za nalazenje ugla pod kojim se dve prave seku (ono tanges = |(k1 + k2)/(1 + k1*k2)|) ali dobijam neke cudne rezultate... jel moze na neki drugi nacin?

btw ovo mi treba za jednu skriptu koju pisem...

hvala unapred!
[ dragansm @ 23.02.2006. 11:02 ] @
Ovde ti je data f-ja koja vraca ugao (u radijanima) izmedju proizvoljna dva vektora.

Code:

inline float TVector2::Angle( const TVector2 &Vec ) const
{
    float len = LengthSquared()*Vec.LengthSquared();
//    assert(len != 0);
    if ( len == 0 ) return 0;
    float sin = (x*Vec.y - y*Vec.x)/len;
        float cos = (x*Vec.x + y*Vec.y)/len;
    if ( sin < -1.0f ) sin = -1.0f;
    if ( sin > 1.0f ) sin = 1.0f;
    float sin_angle = asin( sin );
    if ( cos < 0 )
    {
        sin_angle = PI - sin_angle;
    }
    if ( sin_angle > PI )
    {
        sin_angle = -TWO_PI + sin_angle;
    }
    if ( sin_angle < -PI )
    {
        sin_angle = TWO_PI + sin_angle;
    }
    return sin_angle;
}


Koji si program koristio za crtanje slike?
[ Aleksandar Ružičić @ 10.06.2006. 01:42 ] @
hvala na odgovoru!

zaboravio sam bio na ovu temu (sad slucajno je pronadjoh) jer sam resio problem na drugi nacin (bez uglova)...

Citat:

Koji si program koristio za crtanje slike?

paint :)