Координатное пространство

Схемное окно проекта

В схемном окне проекта точка с координатами (0; 0) располагается в левом верхнем углу окна. Положительное направление оси X – слева направо, а положительное направление оси Y – сверху вниз.

Рисунок 1. Координатное пространство в схемном окне проекта

Окно графического редактора

В окне графического редактора точка с координатами (0; 0) располагается в центре окна. Положительное направление осей аналогично схемному окну проекта: оси X – слева направо, оси Y – сверху вниз.

Рисунок 2. Координатное пространство в окне графического редактора

Для расчета видимых линейных размеров объектов, помещенных во вложенный квадратный контейнер, в исходном графическом контейнере, либо схемном окне можно рассчитать коэффициент преобразования по формуле:

K = Lконт / DLвнутр,

где:
  • К – искомый коэффициент преобразования
  • Lконт – линейный размер контейнера в исходном окне
  • DLвнутр – размер диапазона координат, отображаемого в графическом редакторе при редактировании контейнера.

Тогда видимый линейный размер для графического объекта можно рассчитать по формуле:

Lвид = K * Lисх,

где:
  • Lвид – искомый видимый линеный размер объекта, помещенного во вложенный контейнер
  • Lисх – исходный линейный размер объекта в родительском графическом контейнере или схемном окне проекта.

На иллюстрации ниже показан отрезок длиной Lисх=200 единиц (ед.), помещенный в контейнер со сторонами Lконт=120 ед. При этом диапазон внутренних координат контейнера составляет DLвнутр=400 ед. Тогда коэффициент преобразования:

К = 120 / 400 = 0,3,

а видимая длина отрезка составит:

Lвид = 0,3 * 200 = 60 ед.

Рисунок 3. Сравнение внешнего вида объекта в исходном окне и его копии внутри графического контейнера, пример с квадратным контейнером

В общем случае для прямоугольного графического контейнера нужно рассчитать по аналогичным коэфиициенты масштабирования по каждой из двух сторон:

Kx = Lконт x / DLвнутр x,

Ky = Lконт y / DLвнутр y.

Видимый линейный размер объекта в графическом контейнере можно рассчитать по формуле:

Lвид = sqr((Kx * Lисх x)^2 + (Ky * Lисх у)^2)

На иллюстрации ниже показан отрезок длиной Lисх=200 ед., имеющий проекции Lисх x = 170 ед. и L исх y = 103 ед., и помещенный в контейнер со сторонами Lконт x=124 ед., Lконт y=68 ед. При этом диапазон внутренних координат контейнера составляет DLвнутр x=400 ед., DLвнутр y=200 ед. Тогда коэффициенты преобразования:

К x = 124 / 400 = 0,31,

К y = 68 / 200 = 0,34,

а видимые размеры проекций отрезка (после поворота на 30°) составят:

Lвид x = 0,31 * 170 = 52.7 ед.,

Lвид y = 0,34 * 103 = 35.02 ед.

И итоговая видимая длина отрезка:

L вид = sqr(52.7^2 + 35.02^2) ≈ 63 ед.

Рисунок 4. Сравнение внешнего вида объекта в исходном окне и его копии внутри графического контейнера, пример с прямоугольным контейнером с поворотом