GetDrawingCoords
GetDrawingCoords
Как получить X, Y массив координат Z поверхности объекта импортированного из STL файла?
У меня функция GetDrawingCoords работает корректно только при перемещении мыши. Программное задание координат X, Y приводит к ошибочному результату. К примеру это происходит в демо программе 3D если в NavigatorMouseMove зафиксировать значения X и Y.
У меня функция GetDrawingCoords работает корректно только при перемещении мыши. Программное задание координат X, Y приводит к ошибочному результату. К примеру это происходит в демо программе 3D если в NavigatorMouseMove зафиксировать значения X и Y.
Re: GetDrawingCoords
Здравствуйте,
Не могли бы Вы привести пример кода, показывающий, какие значения X и Y Вы задаете внутри процедуры Tfm3DGLS.NavigatorMouseMove и передаете в функцию GetDrawingCoords?
Михаил
Не могли бы Вы привести пример кода, показывающий, какие значения X и Y Вы задаете внутри процедуры Tfm3DGLS.NavigatorMouseMove и передаете в функцию GetDrawingCoords?
Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support
Re: GetDrawingCoords
Пример кода и STL файл в архиве.
Значения X, Y в NavigatorMouseMove отличаются от положения курсора на 1. Ошибка в GetDrawingCoords.
В NavigatorBitmapData (OnClick event) значения X, Y соответствуют положению курсора. Функция GetDrawingCoords возвращает правильные значения.
Задача программы состоит в том, чтобы при нажатии кнопки "Map" создавалась цветная карта поверхности.
Значения X, Y в NavigatorMouseMove отличаются от положения курсора на 1. Ошибка в GetDrawingCoords.
В NavigatorBitmapData (OnClick event) значения X, Y соответствуют положению курсора. Функция GetDrawingCoords возвращает правильные значения.
Задача программы состоит в том, чтобы при нажатии кнопки "Map" создавалась цветная карта поверхности.
- Attachments
-
- CADtest.rar
- (20.37 KiB) Downloaded 808 times
Re: GetDrawingCoords
Здравствуйте,
Спасибо за файлы.
Не могли бы Вы также прислать файлы проекта (.cbproj, .cpp) и уточнить, в какой версии RAD Studio работаете?
Update: файлы проекта присылать необязательно, мы смогли собрать и запустить Ваше приложение в RAD Studio XE3.
Михаил
Спасибо за файлы.
Не могли бы Вы также прислать файлы проекта (.cbproj, .cpp) и уточнить, в какой версии RAD Studio работаете?
Update: файлы проекта присылать необязательно, мы смогли собрать и запустить Ваше приложение в RAD Studio XE3.
Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support
Re: GetDrawingCoords
Это объясняется тем, что в функции Tsg3DDrawingNavigator.CoordinateConvertion, которая используется для расчета координат при вызове Tsg3DDrawingNavigator.GetDrawingCoords (GetDrawingCoords -> GetDrawingInternalCoords -> CoordinateConvertion), есть проверка на соответствие положения курсора мыши значениям, переданным через аргументы ACoordX, ACoordY:
Code: Select all
function Tsg3DDrawingNavigator.CoordinateConvertion(ACoordX, ACoordY: Integer;
var APointInUCS: TFPoint): TFPoint;
begin
if (ACoordX = FMove.Pos.X) and (ACoordY = FMove.Pos.Y) and Assigned(FIntersectCache) then
begin
Result := SubFPoint(FIntersectCache^, FBoxOffs);
APointInUCS := Result;
end
else
Result := GetRealPoint(ACoordX, ACoordY, APointInUCS);
end;
Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support