webForumDet fria alternativet

Hur räknar jag ut hypotenusan?

7 svar · 943 visningar · startad av xtreme

xtremeMedlem sedan juli 20002 056 inlägg
#1

skriver jag

while(t.getX() - t2.getX() <=50 && t.getY() - t2.getY() <=50) {

fortsätter loopen så länge det är minst 50 pixlar mellan t och t2. Problemet är att det inte fungerar på diagonalen så jag gissar att jag måste räkna ut med pythagoras sats på något sätt. Har provat med

double hypot(double x, double y);

men vet inte riktigt hur jag ska använda det.

GeinMedlem sedan sep. 20005 700 inlägg
#2

Till hypot-funktionen skickar du med avståndet mellan punkterna i X-led samt avståendet i Y-led.

while(hypot(t.getX()-t2.getX(), t.getY()-t2.getY()) <= 50)

Var det så du gjort när du försökte?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

xtreme, vad säger du egentligen? Och vad försöker du göra?
Är det någon slags animation? Eller en iterativ algoritm?
Har du funderat på vad som händer om t.getX() < t2.getX() ?

xtremeMedlem sedan juli 20002 056 inlägg
#4

Gein skrev:

Till hypot-funktionen skickar du med avståndet mellan punkterna i X-led samt avståendet i Y-led.

while(hypot(t.getX()-t2.getX(), t.getY()-t2.getY()) <= 50)

Var det så du gjort när du försökte?

Ja det var så jag gjorde och hypot blir understryket och jag får följande felmeddelande: "The method hypot(int, int) is undefined for the type.."

xtremeMedlem sedan juli 20002 056 inlägg
#5

nitro2k01 skrev:

xtreme, vad säger du egentligen? Och vad försöker du göra?
Är det någon slags animation? Eller en iterativ algoritm?
Har du funderat på vad som händer om t.getX() < t2.getX() ?

Har två sträck som ritas upp slumpvis. När sträcken är 50 pixlar eller mindre från varandra så slutar dom att rita.

GeinMedlem sedan sep. 20005 700 inlägg
#6

xtreme skrev:

Ja det var så jag gjorde och hypot blir understryket och jag får följande felmeddelande: "The method hypot(int, int) is undefined for the type.."

Nu var det länge sedan jag satt med Java men det låter som att du skickar in int:ar och inte double. Prova typkasta argumenten till double.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#7

Näe, nu ser jag felet. Metoden hypot är en klassmetod till klassen Math, och måste anropas med Math.hypot(dx,dy);

xtremeMedlem sedan juli 20002 056 inlägg
#8

Där var felet ;) tackar!

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)