Klasa Punkt i Koło

0

Witam. Dopiero zaczynam zabawę z Java więc proszę o wyrozumiałość.

Mam takie dwie swoje klasy:
Punkt:

 class Punkt {
	int x, y, punkt;
	
	Punkt(){
		x = 0; y =0;
	}
	Punkt(int a){
		this.x = a;
	}
	Punkt(int a, int b){
		this.x = a ;
		this.y = b ;
	}
	int dajX(){
		return x;
	}
	void ustawX(int x){
		this.x = x;
	}
	int dajY(){
        return y;
    }
	void ustawY(int y){
		this.y = y;
	}
	void pokaz(int x, int y){
    	System.out.println("Współrzędne punktu to: ("+x+";"+y+")");
    }
	double odleglosc(double x, double p){
		double Odle = p - x;
    	System.out.println("Odległość wynosi: " + Odle);
    	return Odle;
    }
	boolean czyRow(int Punkt, int p){
    	if(x==0 || y==0){
    		return true;
    	}else 
    		return false;
    }
}

I klasa Koło:

class Koło{
	int Sa, Sb, r;
	Punkt Srodek;
	
	Koło(){
		Sa=0; Sb=0; r=1;
	}
	Koło(int R){
		Sa=0; Sb=0; this.r=R;
	}
	Koło(int a, int b){
		this.Sa=a; this.Sb=b;
	}
	Punkt dajSrodek(){
		return Srodek;
	}
	int dajPromien(){
		return r;
	}
	Punkt ustawSrodek(Punkt c){
		this.Srodek = c;
		return c;
	}
	void ustawPromien(int r){
		this.r = r;
	}
	void pokazInfo(){
		System.out.println("Wspolrzedne srodka to S=("+Sa+":"+Sb+") a promien r="+r);
	}
	boolean czy_w_kole(Punkt p){
		if(dajPromien() >= p.odleglosc(dajSrodek())){
			return true;
		} else return false;
	}
	boolean czy_w_srodku(Koło c){
		if(this.Pole()>c.Pole()){
			return true;
		} else return false;
	}
	double Pole(){
		double Pole=Math.PI*r*r;
		return Pole;
	}
}

W klasie koło brakuje mi jeszcze metody na sprawdzanie czy dwa koła przecinają się czy nie.
I mam napisać program wykorzystujący te wszystkie metody. Jednak gdy np. chce ustawić środek okręgu to nie mogę tam wspiać żadnej liczby a co dopiero współrzędnych.

Mam też problem z wywołaniem metody typu boolean.

0

Metoda ustawŚrodek przyjmuje w argumencie obiekt klasy Punkt:

Koło k = new Koło();
Punkt p = new Punkt(2,2);
k.ustawSrodek(p); //obiekt typu Punkt jako argument metody

Probowałeś coś takiego jak wyżej?

Poza tym w metodzie czy_w_kole(Punkt p):boolean próbujesz wrzucić
do metody odległość obiekt klasy punkt gdy ta metoda przyjmuje dwa argumenty typu double,double

Proponowałbym poczytać o podstawach skoro nie wiesz jak wywoływać poprawnie metody ;P

0

Tak żem czuł... xD
Tylko że teraz jak tak zrobiłem wynik na konsoli jest dziwny?!
Srodek koła ma wspolrzedne Punkt@7ffbfbf9
Raczej powinno mi zwrócić podane punkty a nie coś takiego...:/

Czytanie czytaniem ale mogę prosić jeszcze jakąś wskazówkę co to metody czy_w_kole(Punkt p)?

0

Wypisuje w ten sposób po zmianie:
Koło k = new Koło();
Punkt p = new Punkt(0,0);
System.out.println("Srodek koła ma wspolrzedne "+ p.dajX()+":"+p.dajY());

I teraz jest jak najbardziej spoko.

0

Czy aby na pewno masz dobry algorytm do wyznaczenia czy koła przecinają się? :)

0

Yyyyy... ja tu w ogóle nie mam jeszcze algorytmu by sprawdzać czy się przecinają

0
boolean czy_w_kole(Punkt p){
                if(dajPromien() >= p.odleglosc(dajSrodek())){
                        return true;
                } else return false;
        }

no pytałem bo metoda nie jest pusta ;) chyba, że do czego innego miała służyć

No to jak nie masz jeszcze algorytmu to jakiej wskazówki oczekujesz? :)

teraz to mogę Ci jedynie powiedzieć, że nie możesz do metody odległość wrzucić obiekty typu Punkt (bo obiekt typu Punkt zwraca metoda dajSrodek)

0

Akurat ten fragment kodu ma sprawdzać czy Punkt p znajduje się w kole...
Ale to już mam zrobione :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1