|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2009, 20:51 | #1 |
Регистрация: 20.05.2009
Сообщений: 5
|
Вот собственно задачка:
Разбиваем экран на шесть частей (две строки и три столбца), в каждом из которых строим вложенные квадраты, используя принцип: если оба (строка и столбец) – чётные или нечётные, вращаем по часовой стрелке, если одна (один) чётная, а другая (другой) – нечётная, вращаем против часовой стрелки. Помогите решить, заранее спасибо! Квадраты построила, по какой формуле вращать эти квадраты? Подскажите, плизззз Последний раз редактировалось Stilet; 21.05.2009 в 11:41. |
21.05.2009, 11:45 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
21.05.2009, 13:08 | #3 |
Регистрация: 20.05.2009
Сообщений: 5
|
Код:
program ayham12; uses graph,crt; const DriverDirectory='c:\tp7\BGI'; var x1,y1,x11,y11,x2,y2,x22,y22,x3,y3,x 33,y33:longint; x4,y4,x44,y44,x5,y5,x55,y55,x6,y6,x 66,y66:longint; n,dr,mo:integer; begin dr:=detect; initgraph(dr,mo,DriverDirectory); x1:=getmaxx div 18;x11:=(getmaxx div 18)*5; y1:=getmaxy div 12;y11:=(getmaxy div 12)*5; x2:=(getmaxx div 18)*7;x22:=(getmaxx div 18)*11; y2:=getmaxy div 12;y22:=(getmaxy div 12)*5; x3:=(getmaxx div 18)*13;x33:=(getmaxx div 18)*17; y3:=getmaxy div 12;y33:=(getmaxy div 12)*5; x4:=getmaxx div 18;x44:=(getmaxx div 18)*5; y4:=(getmaxy div 12)*7;y44:=(getmaxy div 12)*11; x5:=(getmaxx div 18)*7;x55:=(getmaxx div 18)*11; y5:=(getmaxy div 12)*7;y55:=(getmaxy div 12)*11; x6:=(getmaxx div 18)*13;x66:=(getmaxx div 18)*17; y6:=(getmaxy div 12)*7;y66:=(getmaxy div 12)*11; cleardevice; setcolor(10); line(0,getmaxy div 2,getmaxx,getmaxy div 2); line(getmaxx div 3,0,getmaxx div 3,getmaxy); line((getmaxx*2) div 3,0,(getmaxx*2) div 3,getmaxy); setcolor(14); repeat line(x1,y1,x1,y11); line(x1,y11,x11,y11); line(x11,y11,x11,y1); line(x11,y1,x1,y1); {rectangle(x1,y1,x11,y11); rectangle(x2,y2,x22,y22); rectangle(x3,y3,x33,y33); rectangle(x4,y4,x44,y44); rectangle(x5,y5,x55,y55); rectangle(x6,y6,x66,y66);} setcolor(green); if odd(x4)=true then begin setcolor(5); x1:=round (x1*cos(30)-y1*sin(30)); y1:=round (x1*sin(30)+y1*cos(30)); x11:=round (x11*cos(30)-y11*sin(30)); y11:=round (x11*sin(30)+y11*cos(30)); {x11:=round ((x11*cos(30))-(y11*sin(30))); y11:=round ((Y11*cos(30))-(x11*sin(30))); {x1:=round (x1-4);x11:=round (x11+4); y1:=round (y1-4);y11:=round (y11+4); x2:=round (x2+4);x22:=round (x22-4); y2:=round (y2+4);y22:=round (y22-4); x3:=round (x3-4);x33:=round (x33+4); y3:=round (y3-4);y33:=round (y33+4); x4:=round (x4-4);x44:=round (x44+4); y4:=round (y4-4);y44:=round (y44+4); x5:=round (x5+4);x55:=round (x55-4); y5:=round (y5+4);y55:=round (y55-4); x6:=round (x6-4);x66:=round (x66+4); y6:=round (y6-4);y66:=round (y66+4);} end; delay(10000); until keypressed; {(x11>(getmaxx div 3));} readln; closegraph; cleardevice; end. |
21.05.2009, 13:17 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Нет Rectangle не подходит.
Вот пример построения многоугольника: Код:
И угол указывай начальный в переменке ang Потом изменяй ее и получишь вращение.
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сформировать новый массив,содержащий отрицательные элементы - Задача по PASCAl. | Waia | Помощь студентам | 2 | 17.12.2008 18:27 |
задача в Pascal | alina777 | Помощь студентам | 3 | 06.12.2008 18:55 |
Задача на Pascal | Skippi | Помощь студентам | 8 | 12.09.2008 17:01 |
Задача [Pascal] | [Smarik] | Помощь студентам | 4 | 04.02.2008 15:50 |