- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
uses graph, crt;
var gd,gm,i:integer;
x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,l,r:integer;
procedure calculationx(r:integer);
begin
x1:=x0;
x2:=x0+trunc(r*sin(36*pi/180));
x3:=x0-trunc(r*cos(18*pi/180));
x4:=x0+trunc(r*cos(18*pi/180));
x5:=x0-trunc(r*sin(36*pi/180));
end;
procedure drow(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5:integer);
begin
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x4,y4);
line(x4,y4,x5,y5);
line(x5,y5,x1,y1);
end;
procedure stars(r:integer); var y1,y2,y3,y4,y5:integer;
begin
calculationx(r);
y1:=y0-r;
y2:=y0+trunc(r*cos(36*pi/180));
y3:=y0-trunc(r*sin(18*pi/180));
y4:=y0-trunc(r*sin(18*pi/180));
y5:=y0+trunc(r*cos(36*pi/180));
drow(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5);
r:=trunc(r*sin(18*pi/180)/sin(126*pi/180));
calculationx(r);
y1:=y0+r;
y2:=y0-trunc(r*cos(36*pi/180));
y3:=y0+trunc(r*sin(18*pi/180));
y4:=y0+trunc(r*sin(18*pi/180));
y5:=y0-trunc(r*cos(36*pi/180));
drow(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5);
if (r>0) then stars(trunc(r*sin(18*pi/180)/sin(126*pi/180)));
end;
begin
read(l);
initgraph(gd,gm,'');
x0:=getmaxx div 2;
y0:=getmaxy div 2;
r:=trunc(l/cos(18*pi/180)/2);
{circle(x0,y0,r);}
stars(r);
readkey;
end.
user654321 16.09.2010 18:13 # +8
Сколько же раз я видел это слово в студенческих лабах...
Lure Of Chaos 16.09.2010 18:25 # 0
http://en.wikipedia.org/wiki/Drow
Анонимус 16.09.2010 19:06 # +5
раньше они писали "risovanie_kruga"
прогресс
3.14159265 17.09.2010 17:03 # 0
а до этого вообще функций не юзали
3.14159265 16.09.2010 18:34 # +2
помимо очевидного идиотизма тут по-хорошему надо завести массиви заменить эту не совсем оч. хуету,
y1:=y0+r;
ЗЫ ну и конечно pi/180 само собой
y2:=y0-trunc(r*cos(36*pi/180));
y3:=y0+trunc(r*sin(18*pi/180));
y4:=y0+trunc(r*sin(18*pi/180));
y5:=y0-trunc(r*cos(36*pi/180));
поворотом на 72 градуса - а их выводить как 360/5, а 5 задать константой или параметром ну чтоб вообще не было мейджиков вроде 126=18*7
ЗЫ ну и конечно pi/180 само собой
Lure Of Chaos 16.09.2010 18:44 # −1
Govnoeb 16.09.2010 19:06 # −5
за градусы и массиви лови минус
3.14159265 17.09.2010 09:14 # +1
на минус мне насрать, но раз уж влезаешь то пожалуста объясни
в чем радость делать 5 строк одинаковой логики?
y1:=y0+r;
y2:=y0-trunc(r*cos(36*pi/180));
y3:=y0+trunc(r*sin(18*pi/180));
y4:=y0+trunc(r*sin(18*pi/180));
y5:=y0-trunc(r*cos(36*pi/180));
а если человек против пентаграмм - ему что код заново переписывать? менять все магические 18, 36, добавлять строку?
Lure Of Chaos 17.09.2010 10:19 # 0
Govnoeb 17.09.2010 12:13 # −3
3.14159265 17.09.2010 17:04 # +2
на этот вопрос сможет ответить только кеп.
Govnoeb 18.09.2010 16:16 # 0
чуть не забыл! за самопальные константы лови еще адын минус
3.14159265 17.09.2010 09:15 # +6
Dummy00001 17.09.2010 22:46 # 0
мы сейчас можем писать "правильно" только потому что оптимизаторующие компиляторы есть норма жизни и процы современные все стерпят...
nil 16.09.2010 22:32 # +4
САТАНИСТЫ В ТРЕДЕ КОДЕ!
Lure Of Chaos 16.09.2010 23:29 # 0
Анонимус 16.09.2010 22:40 # 0