webForumDet fria alternativet

Hur räknar jag ut hypotenusan?

Javaur Java

7 svar · 943 visningar · startad av xtreme

Medlem sedan juli 20002 056 inlägg
Frågan#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.

Medlem 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?

Medlem sedan aug. 20039 340 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() ?

Medlem 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.."

Medlem 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.

Medlem 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.

Medlem sedan aug. 20039 340 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);

Medlem sedan juli 20002 056 inlägg
#8

Där var felet ;) tackar!

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