Avatar billede phrame Nybegynder
03. februar 2002 - 02:34 Der er 10 kommentarer og
1 løsning

Brug af DegToRad

Hei...

Jeg har brug for at vide hvorfor man bruger DegToRad() fra math.h (og den er blevet include't)

Jeg har prøvet DegToRad( double grader ) og grader.DegToRad(), men uden held...

Hvad gør jeg forkert?

På forhånd tak... fra en newbie...
Avatar billede erikjacobsen Ekspert
03. februar 2002 - 02:51 #1
Vis os noget af din kode. Mener du hvorDAN man bruger den,
eller hvorFOR ?
Avatar billede erikjacobsen Ekspert
03. februar 2002 - 02:55 #2
Men ellers bruger man den som

double a = 180;

double b;

b = DegToRad(a);

// b er nok lig med pi  = 3.1415927 ca
Avatar billede phrame Nybegynder
03. februar 2002 - 03:16 #3
how... det er oxe lidt sent.... jeg mente hvordan...

jeg har lige prøvet dit forslag, erik. men uden held...
her er min kode...  kan ikke lige gennemskue hvad jeg gør forkert...

void TreDPunkt::drej( double grader, char akse )
{      double radian;

        radian = DegToRad( grader );

        cout <<"r:" <<radian <<" g:" <<grader <<endl;

        switch( akse )
        {      case 'x':      y = y*cos( grader ) - z*sin( grader );
                                z = y*sin( grader ) + z*cos( grader );
                                visKoordinat();
                                break;

                case 'y':      x = x*cos( grader ) + z*sin( grader );
                                z = (-1*x)*sin( grader ) + z*cos( grader );
                                visKoordinat();
                                break;

                case 'z':      x = x*cos( grader ) - y*sin( grader );
                                y = x*sin( grader ) + y*cos( grader );
                                visKoordinat();
                                break;
        }
}
Avatar billede phrame Nybegynder
03. februar 2002 - 03:23 #4
how... det er vist sent...
det rigtige kode er

void TreDPunkt::drej( double grader, char akse )
{      double radian;
        radian = DegToRad( grader );

        switch( akse )
        {      case 'x':      y = y*cos( radian ) - z*sin( radian );
                                z = y*sin( radian ) + z*cos( radian );
                                visKoordinat();
                                break;

                case 'y':      x = x*cos( radian ) + z*sin( radian );
                                z = (-1*x)*sin( radian ) + z*cos( radian );
                                visKoordinat();
                                break;

                case 'z':      x = x*cos( radian ) - y*sin( radian );
                                y = x*sin( radian ) + y*cos( radian );
                                visKoordinat();
                                break;
        }
}

og jeg får fejlen "call to undefined function 'DegToRad'" og jeg bruger Borland C++ Builder 5.02 pro....
Avatar billede erikjacobsen Ekspert
03. februar 2002 - 03:29 #5
Hmm, i rigtig gammel C var det jo bare en makro. Måske du skal

radian = DEGTORAD( grader );
Avatar billede phrame Nybegynder
03. februar 2002 - 03:39 #6
Får stadig den samme fejl....
Avatar billede phrame Nybegynder
03. februar 2002 - 03:42 #7
har lige siddet og kigget i math.h og jeg kan ikke engang finde funktionen der.... som er den er blevet depricated.... strange
Avatar billede erikjacobsen Ekspert
03. februar 2002 - 08:06 #8
Ok, jamen så går  vi da bare som i gamle dage, men definerer den
selv:

#define DEGTORAD(x) ((x)*0.01745329251994329576)
Avatar billede phrame Nybegynder
03. februar 2002 - 13:01 #9
Tak erik det hjalp....
men hvordan kan det være at du ikke behøves at forklare #define funktionen at den skal tage en double.... eller er det bare lige meget? og hvordan kan det være at man heller ikke behøves at sige at den skal have en return type?
Avatar billede erikjacobsen Ekspert
03. februar 2002 - 13:28 #10
Med #define laver du ikke en funktion, men en makro,
der bare bliver sat ind rent tekstuelt. Det er lidt af et
"hack" fra gamle dage - dengang ingen vidste hvad
Java, Internet, og eksperten.dk var for noget...
Avatar billede phrame Nybegynder
03. februar 2002 - 14:00 #11
Tak for hjælpen... så lærte jeg oxe lidt idag....hehheh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester