Пятничные игры разума
Послеобеденное время по пятницам - или аврал, или расслабуха. ;) Предлагаю поиграть с пользой - благо. любимая игрушка, VBA, всегда под рукой.
Тряхнем стариной, вспомним формулу окружности - x^2 + y^2 = R^2. Макрос1 создает объекты и располагает их по кругу.
Sub Macro1()
Dim s1 As Shape
ActiveDocument.Unit = cdrMillimeter
Dim x As Double
Dim y As Double
xstart = 145
ystart = 105
Dim i As Integer
Это уже привычный "вводный" блок - объявление переменных. ActiveDocument.Unit "объясняет" корелу, что считать будем в миллиметрах. Тонкость - по горизонтали откладывается y, а х - по вертикали (с точностью до наоборот по сравнению с алгеброй в школе).
Организуем цикл -
For i = 0 To 20
y = -10 + i
x = (100 - y ^ 2) ^ (1 / 2)
Вычисляем х в зависимости от y по формуле окружности. Радиус - 10 (в квадрате - 100). Y принимает значения от -10 до 10, х - от 0 до 10 (квадратный корень всегда считают положительным числом).
Set s1 = ActiveLayer.CreateEllipse2(ystart + y, xstart + x, 1, -1, 90#, 90#, False)
s1.Fill.UniformColor.CMYKAssign 100 - 5 * i, 0, 100, 0
Первая строчка создает кружочки и располагает их по дуге окружности, вторая раскрашивает кружки от зеленого до желтого. Вторая полуокружность отличается от первой МИНУСОМ перед Х.
Set s1 = ActiveLayer.CreateEllipse2(ystart + y, xstart - x, 1, -1, 90#, 90#, False)... читать далее
s1.Fill.UniformColor.CMYKAssign 1