ObjectARX, AutoCAD. Среда программирования библиотеки C++



Wi fi авторизация по материалам http://www.flygo.ru. | аренда погрузчика в саратове |

Калибровка Таблетки - часть 2


acdbFail("Couldn’t set TABMODE\n");

return BAD;

}

В этом примере, calibr1 теперь содержит результат калибровки. Поскольку это возможно идентично calibr2 (который был инициализирован acedTablet ()), Вы не обязательно нуждаетесь в этом результате. Когда Вы устанавливаете калибровку, Вы можете определить результат NULL, который заставляет acedTablet () устанавливать калибровку “ тихо. ”

if (acedTablet(calibr2, NULL) != RTNORM) { . . . }

Матрица преобразования прошла, поскольку row1, row2, и row3 - 3x3, матрица преобразования хотела преобразовать 2-ую точку. 2-ая точка выражена как вектор столбца в гомогенных координатах (добавляя 1.0 как третий элемент), так что преобразование напоминает это:

X'

M 00 M 01 M 02

X'

Y'

=

M 10 M 11 M 12

x

Y'

D'

M 20 M 21   1.0

1.0

Вычисление точки подобно трехмерному случаю. AutoCAD преобразовывает точку,  используя следующие формулы:

X' = M 00 X + M 01 Y + M 02

Y' = M 10 X + M 11 Y + M 12

D' = M 20 X + M 21 Y + 1.0

Чтобы поворачивать заканчивающийся вектор назад в 2-ую точку, первые два компонента разделены третью, коэффициентом масштаба, выдавая точку D ' (X '/D ', Y '/D ').

Для проективного преобразования, которое является,  большинство общего случая, acedTablet () делает полное вычисление. Но для афинных и ортогональных преобразований, и - оба 0, удет быть 1.0 - также.

Вычисление опущено; заканчивающаяся 2-ая точка - просто.

Афинное преобразование - специальный, однородный случай проективного преобразования. Ортогональное преобразование - специальный случай афинного преобразования: не только являются и 0, но и  и.

М. 20 М. 21 D '

( X ', Y ')

М. 20 М. 21 М. 00 = М. 11

М. 10 = - М. 01

ОБРАТИТЕ ВНИМАНИЕ, когда Вы устанавливаете калибровку, результат не равняется параметру списка, если направление в списке не было нормализовано; AutoCAD нормализует вектор направления прежде, чем это возвращает это. Также, это гарантирует, что третий элемент в третьем столбце (row3 [Z]) равен 1. Эта ситуация не должна возникнуть, если Вы устанавливаете калибровку, используя значения, отысканные из AutoCAD посредством acedTablet (). Однако, это может случаться, если ваша программа вычисляет преобразование непосредственно.




Содержание  Назад  Вперед