Занимательная графика |
Занимательная графика |
BlackShadow |
21.05.2004 13:32
Сообщение
#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; |
Romtek |
16.07.2004 0:20
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: 2 |
program Uzor; Скачать исходник: source.pas ( 2.53 килобайт ) Кол-во скачиваний: 1958 Эскизы прикрепленных изображений |
Romtek |
16.07.2004 10:59
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: 2 |
Это код для FPC:
program Uzor; Скачать исходник: source.pas ( 2.13 килобайт ) Кол-во скачиваний: 1496 Эскизы прикрепленных изображений |
volvo |
5.11.2004 18:27
Сообщение
#4
|
Гость |
Можно задавать разное количество вершин и коэффициент...
{$N+} Скачать исходник: poly.pas ( 2.75 килобайт ) Кол-во скачиваний: 1426 Эскизы прикрепленных изображений |
Altair |
22.12.2004 22:19
Сообщение
#5
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Код Uses crt,graph; const a=1.3; b=-1.3; c=-13; k1=2.1; k2=1; x0=320; y0=240; Var Gd,gm,sign:Integer; x,y,old:real; i:longint; begin gd:=detect; initgraph(gd,gm,''); x:=0; y:=0; repeat PutPixel(Round(x0+k1*x),Round(y0+k2*y), (i mod 6)+9); if x<0 then sign:=-1 else sign:=1; old:=y; y:=a-x; x:=old-sign*sqrt(abs(b*x-c)); inc(i); until keypressed; closegraph; end. Эскизы прикрепленных изображений -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
22.12.2004 22:24
Сообщение
#6
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Код Uses crt, graph; var k:real; gd,gm:Integer; x,y,z:Longint; Begin gd:=detect; {gm:=VgaHi;} InitGraph(Gm,GD,''); randomize; k:=0.00000; repeat for x:=1 to getMaxX do for y:=1 to GetMaxY do begin If keypressed then halt; z:=sqr(x)+Sqr(y);{ 10+random(5);} If odd(trunc(z*k)) then putpixel(x,y,15) else putpixel(x,y,7); end; k:=k+0.1; until keypressed; CloseGraph; end. Эскизы прикрепленных изображений -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
SHnur |
11.01.2005 2:43
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 81 Пол: Мужской Реальное имя: Шурик Репутация: 0 |
Програма, выводит на экран узор как в 1-ой программе выложенной здесь, но другим способом :
uses graph, crt; А самое интересное в нём - это то, если вы заметили, что он рисуется исключительно прямыми линиями. Скачать исходник: source.pas ( 916 байт ) Кол-во скачиваний: 1285 |
SHnur |
11.01.2005 2:47
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 81 Пол: Мужской Реальное имя: Шурик Репутация: 0 |
Вот небольшой код, рисующий так называемые "фигуры Лиссажу".
Можно побаловаться с коэфицентами: a1, a2, b1, b2, c1, c2... program parametr; |
xds |
11.01.2005 4:58
Сообщение
#9
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
program Circles; Эскизы прикрепленных изображений |
Dark |
23.01.2005 6:52
Сообщение
#10
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Очень интересный и красивый пример RGB графики на Паскале в режиме 13h.
Uses Crt; Скачать исходник: graph_13.pas ( 6.65 килобайт ) Кол-во скачиваний: 1491 |
volvo |
20.05.2005 9:48
Сообщение
#11
|
Гость |
Фрактальные деревья
Uses Graph, CRT; Скачать исходник: fractree.pas ( 1.11 килобайт ) Кол-во скачиваний: 2090 Эскизы прикрепленных изображений |
klem4 |
21.10.2007 20:00
Сообщение
#12
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Еще немного рекурсии Салфетка Серпинского:
uses crt, graph; Сообщение отредактировано: klem4 - 21.10.2007 20:31 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
21.10.2007 20:42
Сообщение
#13
|
Гость |
Его же (в смысле, Серпинского) Ковер:
Uses CRT, Graph; Выглядит вот так: Эскизы прикрепленных изображений |
TarasBer |
15.11.2007 23:08
Сообщение
#14
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Красивая анимация. Смысл прост: рисуется ломаная. Каждая вершина движется прямолинейно, отражаясь от стен. Ломаная всё время рисуется заново поверх старой.
Код 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. Картинка: Эскизы прикрепленных изображений -------------------- |
Текстовая версия | 18.11.2024 9:20 |