Vypocet vzdialenosti dvoch bodov v jave – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vypocet vzdialenosti dvoch bodov v jave – Java – Fórum – Programujte.comVypocet vzdialenosti dvoch bodov v jave – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
tomiik0
Duch
9. 10. 2011   #1
-
0
-

ahojte

chcel by som spravit algoritmus na vypocet vzdialenosti dvoch bodov v jave, stravil som nad tym uz asi 4 hodiny a som zufaly :) s javou a programovanim vobec len zacinam, nejde mi o samotny vysledok, ten si najdem za par sekund na internete, ale naozaj mi zalezi na tom aby som to urobil sam a rozumel tomu

prisiel som s viacerymi variantami algoritmu a vzdy som sa snazil ho potom nejako posunut na vyssi level

najdalej kam som sa dostal je nasledovny algoritmus, upravoval som ho podla prikladu z bicyklom z tunajsich stranok + co som nasiel na internete, bol by som velmi vdacny ak by mi vedel niekto pomenovat zasadnu chybu, ktoru som urobil lebo som si vedomy ze je v nom viac omylov ako niecoho spravneho :)

btw. nasiel som nieco v java api daco ako Point2D.Double, ale pokial by to bolo mozne rad by som to riesil v zhruba tej logike ako som to zacal :)

tu je ten kod:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package vzdialenostdvochbodov;

/**
*
* @author Užívateľ
*/
class Bod {

    char pomenovanieBodu;
    double X = 0 ; //suradnica bodu na ose X
    double Y = 0; //suradnica bodu na ose Y

    void zmenaX(double nastavHodnotu) {
         X = nastavHodnotu;
    }
    void zmenaY(double nastavHodnotu) {
         Y = nastavHodnotu;
    }
    void printStates() {
            System.out.println("osa X:"+X+" osa Y:"+Y+);
       }
}

class bodDemo{
    public static void main(String [] args {

        Bod A = new Bod();
        Bod B = new Bod();
        A.nastavHodnotu(3);
        B.nastavHodnotu(-10);

    }

}

interface Bod {

       void nastavHodnotu(int nastavHodnotu);

       void nastavHodnotu(int nastavHodnotu);

}

class vzdialenostDvochBodov {

     public static void main (String[] args){

          double vzdialenost = Math.hypo(A, B)
          System.out.println(vzdialenost);

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
}

Nahlásit jako SPAM
IP: 147.32.122.–
Reklama
Reklama
KIIV+42
God of flame
9. 10. 2011   #2
-
0
-

na vzdalenost bodu je velice jednoduchej vzorec - rika se tomu pythagorova veta ...

odmocnina( mocnina(A.x-B.x) + mocnina(A.y-B.y) )  - upozorneni: neni to v jave

a pro 3D prostor:  odmocnina( mocnina(A.x-B.x) + mocnina(A.y-B.y) + mocnina(A.z-B.z) )

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
tomiik0
Duch
9. 10. 2011   #3
-
0
-

#2 KIIV
ten vzorec poznam, ja som to chcel zjednodusit a nasiel som java.api totok a dal som to tam namiesto toho

hypot(double x, double y)
          Returns sqrt(x2 +y2) without intermediate overflow or underflow.

Nahlásit jako SPAM
IP: 147.32.122.–
liborb
~ Redaktor
+18
Guru
10. 10. 2011   #4
-
+1
-
Zajímavé

Na tom programu je vidět, že si ho kutal z mnoha zdrojů. Jednak u takového jednoduchého příkladu hned zakládat třídu na Bod ... Začal bych tím, že si vytvoříš správně ten výpočet a pak můžeš pokračovat dál, takže to všechno nacpeš do Main.java a do: 

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // a tady bude ten vypocet
    }
}

Math.hypot si našel dobře, ale nezapomeň, že hypot(x, y) = sqrt(x^2 +y^2), nebo-li když zadáš body, tak musíš provést ještě odčítání, jak ti radil KIIV, než zavoláš hypot.

Můžeš jít postupně: výpočet pro hodnoty uložené v programu (jak to máš teď), hodnoty zadané z klávesnice a pak si do toho můžeš začít montovat třídy. Jen tak mimochodem, třída Bod je v tom tvém příkladě asi jediná použitelná.

Nahlásit jako SPAM
IP: 78.80.52.–
jadus
~ Anonymní uživatel
36 příspěvků
10. 10. 2011   #5
-
0
-

:D aaa kolega z Jecne....

Nahlásit jako SPAM
IP: 88.103.42.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

Podobná vlákna

Vzorec pre vypocet bodov — založil dreameRRRRRRRRR

Meranie vzdialenosti 2 ulic — založil duta-hlava

Súčin dvoch matíc — založil majus85

Porovnanie dvoch kníh — založil gaben

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý