@XiNull

Как рассчитать расстояние между объектами с динамическими X и Y?

Имеем экран, канвас или график, X (ширина) и Y (высота), в пикселях.
X и Y могут меняться, взависимости от разрешения девайса/экрана/дисплея.

Например:

X: ~1080 px
Y: ~218 px

Нужно разметить 2 или n объектов.
Пусть Y(obj) каждого объекта будет ~218 px, а X(obj) неизвестно, но например, можно взять ~109 px.

За расстояние объектов друг от друга возьмём d (distance).

Цель: Расстояние между объектами должно быть одинаковым, несмотря на различные экраны, канвасы или графики, т.е. X и Y экрана, канваса или графика могут меняться. Т.е. передаём одну и ту же единицу расстояния и получаем одинаковое расстояние между объектами. Может у кого есть какие-нибудь идеи? Прям очень нужна формула.
  • Вопрос задан
  • 393 просмотра
Решения вопроса 2
hint000
@hint000
у админа три руки
Так пойдёт?
60f64f27e096a052554223.png
Ответ написан
@EgorSvinarev
Если я правильно понял, то нужно на равномерном расстоянии от объекта adminchik, который находится посередине, разместить другие объекты.
Пусть x_0 = координата по x объекта adminchik, причем x0 = середина канвас все так же по оси x
width = ширина канваса
n = количество объектов
x_delta = шаг по x для размещения объектов
Тогда для размещения остальных объектов по сторонам от объекта adminchik напишем следующий код:
int x0 = 200;
	int width = 400;
	
	int n = 3;
	int x_delta;
	
    x_delta = (width - x0) / (n / 2 + 1);
	
	
	int x = x_delta;
	
	
	for (int i = 0; i < n / 2; i++) {
	    System.out.println(x);
	    x += x_delta;
	}
	
	if (n % 2 != 0) {
	    x_delta = (width - x0) / (n / 2 + 2);
	}
	
	x = x0 + x_delta;
	
	for (int i = n / 2; i < n; i++) {
	    System.out.println(x);
	    x += x_delta;
	}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
LoliDeveloper
@LoliDeveloper
Линейная алгебра как смысл жизни
Расстояние между объектами должно быть одинаковым

Одинаковым по отношению к реальному миру? Тогда забейте на разрешение экранов и тупо пилите под одно разрешение, которое вам надо, а на маленьких экранах оно просто не будет вмещаться в монитор. Иначе я не понимаю как можно сохранять расстояние, когда девайсом могут являться хоть часы, хоть плазма.
Или всё-таки имеется ввиду процентное соотношение?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы