СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Инструментальное ПО

Категория: Информатика

Нажмите, чтобы узнать подробности

Практическая работа: Движение объемных фигур в VBA Excel

Просмотр содержимого документа
«Инструментальное ПО»

'Программа 1

DefSng A-Z

Public T As Double

Const pi = 3.14159265358979

Sub Диапазон_90_90(ii)

If ii 90 Then ii = ii - 180

End Sub

Function Цвет_спектр(ii) As Long

i = (ii + 1) / 2 * 18

Select Case i

Case 0 To 3

Цвет_спектр = RGB(255, CInt(i) * 85, 0)

Case 3 To 6

Цвет_спектр = RGB(CInt((6 - i)) * 85, 255, 0)

Case 6 To 9

Цвет_спектр = RGB(0, 255, CInt(i - 6) * 85)

Case 9 To 12

Цвет_спектр = RGB(0, CInt(12 - i) * 85, 255)

Case 12 To 15

Цвет_спектр = RGB(CInt(i - 12) * 85, 0, 255)

Case 15 To 18

Цвет_спектр = RGB(255, 0, CInt(18 - i) * 85)

End Select

End Function

Private Sub Worksheet_Activate()

Dim Temp_C As Long, Temp_V

T = 0

uX = -90: uY = -90: uZ = -90

Vysota = 200: Shirina = 200: Vysota2 = 100: Shirina2 = 100

Do

T = T + 0.003

uX = uX + 0.4

uY = uY + 0.8

uZ = uZ + 0.2

Диапазон_90_90 uX

Диапазон_90_90 uY

Диапазон_90_90 uZ

Temp_C = Цвет_спектр(Sin(T))

Temp_V = Vysota * (1 + Cos(T * 2.5)) / 2 * 0.5 + 0.5 * Vysota

With Worksheets(1).Shapes("Фигура 1")

.Fill.ForeColor.RGB = Temp_C

.ThreeD.RotationX = uX

.ThreeD.RotationY = uY

.ThreeD.RotationZ = uZ

.ThreeD.Depth = Temp_V

.Height = Temp_V

.Width = Temp_V

.ThreeD.Z = Temp_V / 2

.Top = 200 * (Cos(1.01 * T) - 0.1 * Sin(15.03 * T)) + 110

.Left = 200 * (Sin(0.99 * T) + 0.7 * Cos(3.01 * T)) + 170

End With

uX2 = uX2 + 0.2

uY2 = uY2 + 0.1

uZ2 = uZ2 + 0.07

Диапазон_90_90 uX2

Диапазон_90_90 uY2

Диапазон_90_90 uZ2

Temp_C = Цвет_спектр(Sin(T * 2.5) + Sin(T * 2.47))

Temp_V = Vysota2 * (1 + Cos(T * 1.5 + 3.14)) / 2 * 0.5 + 0.5 * Vysota2

With Worksheets(1).Shapes("Фигура 2")

.Fill.ForeColor.RGB = Temp_C

.ThreeD.RotationX = uX2

.ThreeD.RotationY = uY2

.ThreeD.RotationZ = uZ2

.ThreeD.Depth = Temp_V / 2

.Height = Temp_V

.Width = Temp_V

.ThreeD.Z = Temp_V / 4

.Top = 200 * (Cos(1.005 * T) - 0.05 * Sin(15.05 * T)) + 105

.Left = 200 * (Sin(0.995 * T) + 0.6 * Cos(2 * T)) + 160

End With

DoEvents

Loop Until T 5

End Sub


Похожие файлы