Плоскость и координаты на ней

Автор Elonex, 26.01.12, 16:36:37

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Elonex

Здравствуйте. Такая проблема:

Программно создаю плоскость под углом к оси. Вращаю XOZ вокруг оси OZ. С этим проблем не возникает. Размещаю на ней окружность kscircle(x,y,.,.). В общем направления осей x и y меняются в зависимости от угла поворота! Так что я не знаю в каком направлении будут эти оси и, следовательно, окружность создается неправильно. Можно ли как то уточнить направления этих осей? Допустим положительная OY на плоскости всегда сонаправлена с положительным направлением OZ?

По сути плоскость вращается вокруг OZ и в любом случае одна из осей плоскости с ней параллельна, только вот какая и как она будет направлена-вот это не ясно.


Elonex

xabse=100
rade=45
diamobje=50
If Not part Is Nothing Then
            Dim entityaxis As Object
            entityaxis = part.getdefaultentity(Obj3dType.o3d_axisOZ)

            If Not entityaxis Is Nothing Then
                Dim basePlane As Object

                basePlane = part.GetDefaultEntity(Obj3dType.o3d_planeXOZ)
                If Not basePlane Is Nothing Then
                    Dim entityangle As Object
                    entityangle = part.newentity(Obj3dType.o3d_planeAngle)
                    If Not entityangle Is Nothing Then
                        Dim entityangledef As Object
                        entityangledef = entityangle.getdefinition
                        If Not entityangledef Is Nothing Then
                            entityangledef.angle = rabse 'Угол поворота плоскости
                            entityangledef.SetPlane(basePlane)
                            entityangledef.SetAxis(entityaxis)
                            entityangle.Create()
                                   Dim entitysketch As Object
                                    entitysketch = part.newentity(Obj3dType.o3d_sketch)
                                    If Not entitysketch Is Nothing Then
                                        Dim sketchdef As Object
                                        sketchdef = entitysketch.getdefinition()
                                        If Not sketchdef Is Nothing Then
                                            sketchdef.setplane(entityangle)
                                            entitysketch.create()
                                            Dim sketchEdit As Object
                                            sketchEdit = sketchdef.BeginEdit()
                                             sketchEdit.kscircle(0, xabse, diamobje, 1)

                                            sketchdef.EndEdit()

Вот код.


Когда меняется угол поворота, меняются оси  XY на плоскости. И не понятно, как определить центр окружности. Мне надо, чтобы расстояние до центра окружности (xabse) откладывалось всегда по положительному направлению оси OZ

от 0 до 90 градусов -Положительному направлению оси OZ соответствует отрицательное направление по оси Y, вектор поворота плоскости X+
от 90 до 180 градусов - Положительному направлению оси OZ соответствует отрицательное направление по оси X, вектор поворота плоскости Y-
от 180 до 270 градусов - Положительному направлению оси OZ соответствует направление по оси Y+, вектор поворота плоскости X-
от 270 до 360 градусов - Положительному направлению оси OZ соответствует направление по оси X+, вектор поворота плоскости Y

Вектор поворота плоскости, соответствует прямому направлению.