Jak uzyskać efekt narysowanych okręgów?

0

Witam,
Mam pytanie czy jest możliwe uzyskanie takiego efektu (załącznik) w javie? Może istnieje gotowa biblioteka albo coś? Jeśli ktoś byłby na tyle chętny żeby podzielić się swoją wiedzą to zapraszam :)
Pozdrawiam.

0

Czy jakaś biblioteka to nie wiem ( szukałbym kombinacji słów github library target board - może jakaś graficzna będzie, kto tam wie).

Na piechotę:
możesz sobie narysować podkład z tymi kręgami i siatką ( chociażby w paint, serio), i wczytać to jako bitmapę na obiekcie Canvas.
Później rysuj na tym co chcesz.
Albo Canvas, jakiś algorytm i rysujesz serię okręgów, później siatka.

0

Może doprecyzuję, chodzi o to żeby wprowadzić współrzędne i on zaznaczy obszar np 5km kolor czerwony 10km klor zółty 15km kolor zielony.

0

Coś jak zaznaczanie obszaru na mapie, w sumie to chodzi o to samo tylko w BARDZO uproszczonej formie. Samo narysowanie ovali nie jest jakimś problemem ale nie potrafię pokolorować obszarów między nimi.

0
Błękitny Kura napisał(a):

Może doprecyzuję, chodzi o to żeby wprowadzić współrzędne i on zaznaczy obszar np 5km kolor czerwony 10km klor zółty 15km kolor zielony.

W programowaniu chodzi o rozbijanie problemów na mniejsze.
Umiesz, w ogóle narysować dowolnej wielkości kropkę?
Albo cokolwiek?

Najpierw trzeba pokombinować z bardzo prostymi elementami, a potem z nich robisz większy.

0
Błękitny Kura napisał(a):

Coś jak zaznaczanie obszaru na mapie, w sumie to chodzi o to samo tylko w BARDZO uproszczonej formie. Samo narysowanie ovali nie jest jakimś problemem ale nie potrafię pokolorować obszarów między nimi.

No to pokaż co masz na razie i będzie wiadomo o co chodzi:)

0
Błękitny Kura napisał(a):

Coś jak zaznaczanie obszaru na mapie, w sumie to chodzi o to samo tylko w BARDZO uproszczonej formie. Samo narysowanie ovali nie jest jakimś problemem ale nie potrafię pokolorować obszarów między nimi.

Jeśli okręgi mają wspólny środek, to malujesz koła od największego do najmniejszego.

0

Tak jak wcześniej napisałem, rysowanie prostych elementów, nadawanie im koloru nie jest problemem. Problem pojawia się w momencie gdy namaluję 3 koła i chcę pokolorować obszar między nimi żeby to lepiej wyglądało.

0
Błękitny Kura napisał(a):

Tak jak wcześniej napisałem, rysowanie prostych elementów, nadawanie im koloru nie jest problemem. Problem pojawia się w momencie gdy namaluję 3 koła i chcę pokolorować obszar między nimi żeby to lepiej wyglądało.

Yyyy, co rozumiesz przez obszar między nimi?
Tam nie ma między nimi żadnego obszaru.

0

Proszę załącznik obrazuje o co mi chodzi:)

0

Zdefiniuj obiekty:
canvas ( bo po tym pewnie rysujesz)
paint ( kolor)
i później coś takiego
canvas.drawCircle(parametry);

0

A nie możesz narysować 3 elementów z wypełnieniem i nałożyć je na siebie? A jeśli nie to narysować x kół, każde mniejsze od poprzedniego o 2px?

0

Rysowałem czymś takim:
Graphics g = this.getGraphics();
g.setColor(Color.RED);
g.drawOval(50,50,100,100);

0

A w ogóle wiesz czego używasz czy niekoniecznie?

0

Wiem co to canvas. Rysowanie wielu kół nie wchodzi w grę max 3-4. Najlepiej byłoby narysować 3 koła o podanej grubości, ale jak taką grubość ustawić?!

0

Jeśli wiesz że używasz canvs'a to czemu nie wpiszesz magicznego hasła w google drawOval fill? Wpisując to i klikając na pierwszy link masz całą dokumentację. Wtedy naciskasz ctrl + f i wpisujesz fill, a potem patrzysz gdzie jest to słowo użyte. Gdybyś tak zrobił zobaczyłbyś że jest metoda fillOval której wystarczy użyć. Test dla Ciebie. Wyszukaj jakie parametry przyjmuje, spróbuj jej użyć i napisz na forum jaki był tego rezultat.

0

Trochę brzydki kod ale za to łopatologicznie :-)

public class Circles extends JFrame {
	public Circles() {
		this.setSize(800, 880);
		this.setVisible(true);
		this.setResizable(false);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	
	public static void paintRedOval(Graphics graphics) {
		graphics.setColor(Color.RED);
		graphics.fillOval(200, 200, 400, 400);
	}
	
	public static void paintGreenOval (Graphics graphics) {
		graphics.setColor(Color.GREEN);
		graphics.fillOval(150, 150, 500, 500);
	}
	
	public static void paintYellowOval (Graphics graphics) {
		graphics.setColor(Color.YELLOW);
		graphics.fillOval(100, 100, 600, 600);
	}
	
	public void paint(Graphics graphics) {
		paintYellowOval(graphics);
		paintGreenOval(graphics);
		paintRedOval(graphics);
	}
	
	public static void main(String[] args) {
		Circles paintCircles = new Circles();
		paintCircles.paint(null);
	}
}

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