Масштабирование графа на плоскости (геометрия)
Есть набор вершин, отображённых симметрично началу координат (условной точке). Отображается скученно, т.к. координаты вершин - самые разные от 0.000 .. 1000.000 по обоим осям. Как вывести граф, чтобы он заполнил собой всю прямоугольную канву (отмасштабировать, убрать скученность вершин)?
Уточняю. Работаю в RAD Studio XE5, C++ Builder. Граф вывожу на канву компонента Image (1000x700 px)
.
На данный момент граф отцентрирован в Image и выводится в координаты currentX
, currentY
:
double deltaX = ((Image1Width) /2 - (maxX-minX)/2);
double deltaY = ((Image1Height)/2 - (maxY-minY)/2);
double currentX = deltaX + StrToFloat(OBOD_XCoord->Strings[i]);
double currentY = deltaY + StrToFloat(OBOD_YCoord->Strings[i]);
где maxX
, minX
, maxY
, minY
- максимумы и минимумы координат вершин по обоим осям, а OBOD_XCoord
, OBOD_YCoord
- исходные координаты вершин.
Как отмасштабировать граф (как можно крупнее), дабы избежать скученности вершин?
Источник: Stack Overflow на русском