ADN Club => ObjectARX => Тема начата: vladimir.leontyev от 22-12-2022, 20:07:08
Название: Как использовать transfromBy для масштабирования?
Отправлено: vladimir.leontyev от 22-12-2022, 20:07:08
Всем привет, есть AcDbEntity (AcDb3dSolid, AcDbCircle..) нужно его немного уменьшить/увеличить с помощью transfromBy() не подскажите в какую сторону думать (может примерчик на с++)? спасибо
Название: Re: Как использовать transfromBy для масштабирования?
Отправлено: Александр Ривилис от 24-12-2022, 03:25:31
vladimir.leontyev, Что тут думать, программировать нужно!
Это вроде работает, но невозможно задать базовую точку, относительно которой производится масштабирование. Как тут быть? Спасибо (извиняюсь за неформатированный код)
Название: Re: Как использовать transfromBy для масштабирования?
Отправлено: Александр Ривилис от 10-01-2023, 19:22:59
Первая мысль, которая приходит в голову - сделать три трансформации: 1. Перенос из базовой точки в начало координат. 2. Масштабирование. 3. Перенос в соответствии с новым положением базовой точки с учетом масштабирования. P.S.: Очень немного примитивов поддерживают масштабирование с разными масштабами по X, Y, Z. Из того, что мне помнится - это AcDbBlockReference и AcDb3dSolid и кажется еще AcDbEllipse. В противном случае transformBy возвращает Acad::eCannotScaleNonUniformly
Название: Re: Как использовать transfromBy для масштабирования?
Отправлено: vladimir.leontyev от 11-01-2023, 17:59:19
Спасибо за совет, мне это помогло. Я делал scaling после translation, а надо наоборот!