Это скорее математическая загадка, чем конкретная кодировка, но я уверен, что мне тоже понадобится помощь.VBA for MicroStation - определение положения относительно угла
Я пишу код для размещения ячейки MicroStation в выбранном масштабе, а затем для использования команд MicroStation для растягивания части ячейки в другое место. По-моему, кодирование было завершено, поскольку оно работало в моей тестовой среде, но при тестировании с некоторыми пользователями он сразу же порвал. Понадобилось некоторое время, чтобы установить причину, и это вызвано представлением на экране с примененным вращением.
Мой код основан на захвате позиции пользователя для начала размещения ячейки, полученной с помощью point3d, тогда мне нужно выбрать другую точку на заданном расстоянии вдоль XY от последней точки, это регулируется путем факторизации в выбрана шкала «CellScale как целое» так что моя вторая позиция определяется как:
PosFlood.X=Pos1.X + (0.35 * CellScale)
PosFlood.Y=Pos1.Y + (0.007 * CellScale)
Но этот расчет не так, когда вид поворачивается. Я смог получить угол поворота и установить его как «ViewAngle as Double», но я не знаю, какую формулу использовать для вычисления моей второй позиции, я считаю, что мне нужно использовать sin и cos, но все поиски вызвали меня короткая.
Надеюсь, в киберпространстве есть математик, который может поставить меня на правильный путь?
Спасибо - Марк