19. februar 2003 - 01:28Der er
9 kommentarer og 2 løsninger
Oversættelse fra c
hi jeg har fået fat i en c funktion jeg godt kunne bruge i delphi, og da jeg ikke forstår det hele håbede jeg en af jer kunne forklare mig det... Er funktionen : function Noise1(integer x, integer y) n = x + y * 57 n = (n<<13) ^ n; return ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0); end function som driller en smule. Eller rettere er "(n<<13)" og "7fffffff" jeg ikke ved hvad gør håber en af jer kan hjælpe.
Geek [Hint] life.pas(8): Variable 'Happiness' is declared but never used in 'Meaning_of_life'
Jeg er C koder, så jeg kan ikke hjælpe dig med pascal-delen, men jeg kan da sige hvad det par ting betyder...
<< er Left shift (<<), dvs. at man flytter alle bits en plads til venstre. I pascal er ^vist en pointer, i C er det en Bitwise exclusive OR & er en Bitwise AND
7fffffff burde de have skrevet 0x7fffffff for at være helt korrekt. Det er Hex for 2147483647
hvis det er real i c børe man så ikke skrive 10.0 / 3.0 = 3,33333 ??
dvs n er enten lig med n * 10^-13 eller bare n ????? Er der en speciel grund til at det er skrevet i hex ?? (eller er det kun lavet for at forvirre mig ?? :))
Hvordan skal "(n * (n * n * 15731 + 789221) + 1376312589) & 7fffffff" forståes ?? return (n*(n^2*tal1+tal2)+tal3) og tal4; Hvordan kan return være n gange en masse tal samtidig med den er tal4 ?? (Måske bare mig der burde smutte i seng :))
Der er et par forskellige muligheder .. Du glemmer at fortælle om retur typen og den slags ..
Men her er i hverfald et bud :
uses Math; function Noise1(x, y : Integer) : Extended; var n : Integer; begin n := x + y * 57; n := Trunc(Power((n shl 13) , n)); result := ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) and $7fffffff) / 1073741824.0); end;
Hov det må i undskylde, troede jeg havde fået skrevet på hvor funktionen kom fra. :) Stammer fra siden : http://freespace.virgin.net/hugo.elias/models/m_perlin.htm Og er bare Pseudo code. Så derfor jeg havde glemt retur type. Men tusindtak for hjælpen alle 3
Doc : Håber ikke du bære nag over du ikke fik tildelt et par point, men du havde ikke svaret, og jeg kom frem til at de få point nok ikke betød det helt store i livets store sammenhæng... Men jeg tager fejl og det betyder du vil gi' mig et spark i røven, når man står og banker på himlens port (hvis du da kommer først) skal jeg nok finde en måde at gøre det godt igen!!
Geek [Hint] life.pas(8): Variable 'Happiness' is declared but never used in 'Meaning_of_life'
Skulle lige være et "Hvis" inde imellem "men" og "Jeg" i 4. linje for at det giver en smule mening
Synes godt om
Ny brugerNybegynder
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.