![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
TOPEHTO |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем доброго времени суток!
Вот сеголня еще задали...В паскалевской графики Я вообще не силен, поэтому надеюсь что хоть ктонибудь даст алгоритм и не пройдет мима... 1 треугольник Цитата Построить на экране треугольник по введенным длинам трех сторон. Построенный треугольник должен поместиться на экране. Его изображение должно соответствовать принятым в школе стандартам: тупоугольный треугольник должен быть ориентирован большей стороной вниз; прямоугольный треугольник должен стоять на катете (прямой угол слева); равнобедренный треугольник должен стоять на основании. 2 треугольник Цитата Вывести на экран вращающееся изображение произвольного невырожденного треугольника. в душе не представляю как это делать...народ подскажите хотя бы алгоритм, ПОИСК рез-татов не дал, хотя смотрел хорошо... ![]() ![]() ![]() |
![]() ![]() |
TOPEHTO |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 87 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну народ...выручайте...
![]() 1 задачу все еще надо сделать и сдать, очень на Вас надеюсь...а вращающийся треугольник сделал, может кому и понадобится Цитата {$N+} {$E+} Program lab6_2; uses Crt, Graph; var Gd, Gm: Integer; x1,x2,x3,y1,y2,y3:integer; xc,yc:integer; xx1,xx2,xx3,yy1,yy2,yy3:integer; ugol,wag:real; r1,r2,r3,u1,u2,u3:real; g:boolean; a:Char; Procedure system_delay(x:longint); var system_timer:longint absolute $0000:$046C; stop_timer:longint; begin stop_timer:=system_timer; repeat until (stop_timer+x)<=system_timer; End; Function opred_ugol(katy,katx:integer):real; var uu:real; begin if (katy<0)and(katx<0) then uu:=arctan((-1)*katy/katx); if (katy<0)and(katx>0) then uu:=arctan((-1)*katy/katx)+Pi; if ((katy>=0)and(katx<0)) then uu:=arctan((-1)*katy/katx); if ((katy>=0)and(katx>0)) then uu:=arctan((-1)*katy/katx)+Pi; if (katy<0)and(katx=0) then uu:=3*Pi/2; if (katy>=0)and(katx=0) then uu:=Pi/2; opred_ugol:=uu; End; begin clrscr; Write('Enter x1,y1,x2,y2,x3,y3: '); Readln(x1,y1,x2,y2,x3,y3); Write('Enter to4ku dentra vrawenii(x,y): '); Readln(xc,yc); Write('Enter wag: '); Readln(wag); Write('Pokazivat vspomogatelnie okrugnosti(y/n): '); Readln(a); g:=a='y'; r1:=sqrt(sqr(x1-xc)+sqr(y1-yc)); r2:=sqrt(sqr(x2-xc)+sqr(y2-yc)); r3:=sqrt(sqr(x3-xc)+sqr(y3-yc)); u1:=opred_ugol(y1-yc,x1-xc); u2:=opred_ugol(y2-yc,x2-xc); u3:=opred_ugol(y3-yc,x3-xc); ugol:=0; Gd := Detect; InitGraph(Gd, Gm, ''); repeat xx1:=xc+Round(r1*cos(ugol+u1)); yy1:=yc+Round(r1*sin(ugol+u1)); xx2:=xc+Round(r2*cos(ugol+u2)); yy2:=yc+Round(r2*sin(ugol+u2)); xx3:=xc+Round(r3*cos(ugol+u3)); yy3:=yc+Round(r3*sin(ugol+u3)); ClearDevice; if g then begin setcolor(3); Circle(xc,yc,Round(r1)); Circle(xc,yc,Round(r2)); Circle(xc,yc,Round(r3)); End; setcolor(15); MoveTo(xx1,yy1); LineTo(xx2,yy2); LineTo(xx3,yy3); LineTo(xx1,yy1); if (ugol<6.28) then ugol:=ugol+wag else ugol:=ugol+wag-6.28; system_delay(2); until KeyPressed; CloseGraph; end. Очень надеюсь на Вашу помощь... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:28 |