Какова будет формула для поворота кривой по оси X в Java?
Предполагая, что у вас есть кривая в виде массива точек, это что-то вроде псевдокода:
Point[] curve;
double x_max = curve[0].x, x_min = curve[0].x;
for( point : curve) {
x_max = max(x_max, point.x);
x_min = max(x_min, point.x);
}
for (point : curve) {
point.x = x_max - point.x + x_min;
}
Как это работает? На самом деле я пытаюсь отразить нормализованные координаты кривой — это те координаты, которые были бы у точек, если бы они начинались с x = 0
(формула для этого point.x - x_min
) и затем вычтите результат из x_max, чтобы кривая теперь определялась справа налево, а не слева направо.
Трудно понять, как это связано с C ++ или Java, но математически, если у вас есть функция f(x)
что вы хотите перевернуть вдоль оси х, вы просто делаете f(-x)
,