![]() |
![]() |
BlackShadow |
![]()
Сообщение
#1
|
Гость ![]() |
В этой теме приведены исходники, отрисовывающие следующие фигуры:
Цитата Параметрическое представление спирали: x = r cos t , y = r sin t, r = t/2 Если количество витков = n, то T пробегает от 0 до n*2*pi. r растёт от 0 до R_max (данный внешний радиус), и пропорционален T. Тогда r = T/(n*2*pi)*R_max. Uses Graph, Crt; |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Красивая анимация. Смысл прост: рисуется ломаная. Каждая вершина движется прямолинейно, отражаясь от стен. Ломаная всё время рисуется заново поверх старой.
Код program Lines; uses Graph, CRT; const CountPoints = 30; CountColors = 5; Colors: array [0 .. CountColors - 1] of byte = (4, 2, 6, 14, 15); var i: integer; GrDev, GrMode: integer; X, Y: array [0 .. CountPoints - 1] of integer; dx, dy: array [0 .. CountPoints - 1] of integer; Col: array [0 .. CountPoints - 1] of byte; begin Randomize; GrDev := VGA; GrMode := VGAHi; InitGraph(GrDev, GrMode, ''); for i := 0 to CountPoints - 1 do begin X[i] := random(GetMaxX); Y[i] := random(GetMaxY); dx[i] := random(7) - 3; dy[i] := random(7) - 3; Col[i] := Colors[random(CountColors)]; end; while KeyPressed do ReadKey; repeat for i := 0 to CountPoints - 1 do begin SetColor(Col[i]); Line(X[i], Y[i], X[(i + 1) mod CountPoints], Y[(i + 1) mod CountPoints]); X[i] := X[i] + dx[i]; Y[i] := Y[i] + dy[i]; if (X[i] < 0) or (X[i] >= GetMaxX) then dx[i] := -dx[i]; if (Y[i] < 0) or (Y[i] >= GetMaxY) then dy[i] := -dy[i]; end; until KeyPressed; CloseGraph; end. Картинка: Эскизы прикрепленных изображений ![]() -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 9.03.2025 5:07 |