Нарисуйте дерево (буквально) с помощью кругов в Android – не структура дерева

Я изо всех сил пытаюсь нарисовать структуру дерева в Android. Мне нужно нарисовать структуру в форме дерева с ветвями внизу. Фактические листья дерева будут представлены в виде кругов. Я уже начал рисовать круги, получая ширину и высоту экрана. Мой код выглядит следующим образом:

Первоначально у меня есть ширина и высота экрана:

Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; System.out.println("Width is " + width + "Height is " + height); scrWidth = width; scrHeight = height; 

И затем я создал объект Paint с теми же цветами и повторил его через цикл for чтобы рисовать круг несколько раз:

  class Panel extends View { public Panel(Context context) { super(context); paint = new Paint(); paint.setColor(Color.BLACK); paint.setTextSize(20); paint.setStyle(styles[0]); } @Override public void onDraw(Canvas canvas) { setWillNotDraw(false); for (int i = 0; i < name.length; i++) { x = (int) ((scrWidth / 360.0) * (90 + longitude[i])); y = (int) ((scrHeight / 180.0) * (90 - latitude[i])); paint.setStyle(styles[0]); canvas.drawCircle(x, y, 25, paint); invalidate(); System.out.println(x + "x" + name[i]); System.out.println(y + "y" + name[i]); } } 

Я на самом деле сильно закодировал значения для lat и long следующим образом:

 Double longitude[] = new Double[]{0.0,62.2,122.2}; Double latitude[] = new Double[]{40.2, 40.2, 40.2}; 

Я не хочу жестко кодировать значения lat и long, но я не уверен, какие математические вычисления необходимы для динамического поиска, поэтому я полностью в темноте. Было бы здорово, если бы кто-то помог мне! Любые ссылки, которые помогут мне проложить путь к финальной части, наиболее приветствуются, потому что я знаю, что ее немного сложно найти библиотеки или готовые коды для этих любопытных вещей.

PS: Я на самом деле не уверен, что OpenGL поможет мне в этих вещах, но я бы с удовольствием потрудился, поэтому любая ссылка на это также приветствуется.

Ниже изображена картина того, что я на самом деле хочу:

Введите описание изображения здесь

Я закончил создание этого дерева, используя Canvas и Path . Холст для листьев и Путь для ветвей. Это было утомительно и трудоемко, и я советую другим не идти по этому пути, так как требуется много времени для загрузки, потому что он пытается слишком много работать с Canvas, и у меня часто возникают проблемы с памятью. Я все еще смотрю на них. Надеюсь, это поможет кому-то.