Каталог фрилансеров и работ портфолио.
Удаленная работа для программистов, дизайнеров, оптимизаторов, копирайтеров...
 

Блоги

Главная страница
Блоги
rrenard
Читать блог
Комментарии
#1685

Пятничные игры разума

Графический дизайн/Арт 18.03.2011 12:20:38
(5/5) 

Послеобеденное время по пятницам - или аврал, или расслабуха. ;) Предлагаю поиграть с пользой - благо. любимая игрушка, 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
... читать далее
Рисунок4.jpg
 
Вы должны войти или зарегистрироваться чтобы добавить комментарий
Нет данных
Нет данных