TransformBy Пример |
Sub Example_TransformBy() 'Этот пример создает линию и вращает её повёрнутой на 90 градусов, 'используя матрицу преобразования. 'Создайте линию Dim lineObj As AcadLine Dim startPt(0 To 2) As Double Dim endPt(0 To 2) As Double startPt(0) = 2: startPt(1) = 1: startPt(2) = 0 endPt(0) = 5: endPt(1) = 1: endPt(2) = 0 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPt, endPt) lineObj.Update 'Инициализируйте transMat переменную с матрицей преобразования, 'которая будет вращать объект на 90 градусов вокруг (0,0,0) '(Больше примеров матриц преобразования упомянуто ниже), Dim transMat(0 To 3, 0 To 3) As Double transMat(0, 0) = 0#: transMat(0, 1) = -1#: transMat(0, 2) = 0#: transMat(0, 3) = 0# transMat(1, 0) = 1#: transMat(1, 1) = 0#: transMat(1, 2) = 0#: transMat(1, 3) = 0# transMat(2, 0) = 0#: transMat(2, 1) = 0#: transMat(2, 2) = 1#: transMat(2, 3) = 0# transMat(3, 0) = 0#: transMat(3, 1) = 0#: transMat(3, 2) = 0#: transMat(3, 3) = 1# 'Преобразуйте линию, используя определенную матрицу преобразования MsgBox "Преобразуйте линию.", , "TransformBy Пример" lineObj.TransformBy (transMat) ZoomAll MsgBox "Линия преобразована.", , "TransformBy Пример"' Больше примеров матриц преобразования:' Матрица Поворота: 90 Градусов вокруг 0,0,0 ' 0.000000 -1.000000 0.000000 0.000000 ' 1.000000 0.000000 0.000000 0.000000 ' 0.000000 0.000000 1.000000 0.000000 ' 0.000000 0.000000 0.000000 1.000000' Матрица Поворота: 45 Градусов вокруг 5,5,0 ' 0.707107 -0.707107 0.000000 5.000000 ' 0.707107 0.707107 0.000000 -2.071068 ' 0.000000 0.000000 1.000000 0.000000 ' 0.000000 0.000000 0.000000 1.000000' Матрица Трансляции: переместите объект 10,10,0 ' 1.000000 0.000000 0.000000 10.000000 ' 0.000000 1.000000 0.000000 10.000000 ' 0.000000 0.000000 1.000000 0.000000 ' 0.000000 0.000000 0.000000 1.000000' Матрица Масштабирования: масштаб 10,10 в точке 0,0,0 ' 10.000000 0.000000 0.000000 0.000000 ' 0.000000 10.000000 0.000000 0.000000 ' 0.000000 0.000000 10.000000 0.000000 ' 0.000000 0.000000 0.000000 1.000000' Матрица Масштабирования: масштаб 10 в точке 2,2 ' 10.000000 0.000000 0.000000 -18.000000 ' 0.000000 10.000000 0.000000 -18.000000 ' 0.000000 0.000000 10.000000 0.000000 ' 0.000000 0.000000 0.000000 1.000000 End SubСайт управляется системой uCoz