Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 7
1

Нарисовать вектор вместо треугольника (правка кода)

31.03.2012, 22:33. Показов 1095. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте вот программа , в ней нарисован треугольник , но вместо него нужно нарисовать сектор , помогите никак не получается реализовать ...
Pascal
1
2
3
4
5
6
7
8
9
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
PROGRAM din_0bj_17;
 USES Graph,Crt;
 TYPE
  TMesto=Object
   x,y:Integer;
   Constructor Init(initx,inity:Integer);
   Destructor Done;
  End;
 
  TPoint=Object(TMesto)
   Procedure Show(color:BYTE) ;Virtual;
   Procedure Hide;Virtual;
   Procedure MoveTo(newx,newy:Integer;color:BYTE);
  End;
 
  TTreug=Object(TPoint)
   a,b:Integer;
   Constructor Init(initx,inity,inita,initb:Integer);
   Procedure Show(color:BYTE); Virtual;
   Procedure Hide; Virtual;
  End;
 
  TGraph=Object
   grdriver:Integer;
   grmode:Integer;
   Procedure Init(gd,gm:Integer;path:STRING);
   Procedure Fin;
  End;
 
 TPTreug=^TTreug;
  Constructor TMesto.Init(initx, inity: Integer);
   Begin
    x:=initx;
    y:=inity;
   End;
 
  Destructor TMesto.Done;
   Begin
    WriteLn;
   End;
 
  Procedure TPoint.Show(color:BYTE);
   Begin
    PutPixel(x,y,color);
   End;
  Procedure TPoint.Hide;
   Begin
    PutPixel(x,y,GetBkColor);
   End;
  Procedure TPoint.MoveTo(newx, newy:Integer;color:BYTE);
   Begin
    Hide;
    x:=newx;
    y:=newy;
    Show(color);
   End;
 
  Procedure TGraph.Init(gd,gm:Integer;path:STRING);
   Begin
    grdriver:=gd;
    grmode:=gm;
    IniTGraph(grdriver,grmode, path) ;
   End;
  Procedure TGraph.Fin;
   Begin
    CloseGraph;
   End;
 
  Constructor TTreug.Init(initx,inity,inita,initb:Integer);
      begin
    TPoint.Init(initx, inity) ;
    a:=Inita;
    b:=Initb;
   End;
  Procedure TTreug.Show(color:BYTE);
   Begin
    SetColor(Color);
    Line(x,y,x + b div 2,y + a div 2);
    Line(x,y,x - b div 2,y + a div 2);
    Line(x + b div 2,y + a div 2,x - b div 2, y +a div 2);
  End;
  Procedure TTreug.Hide;
   Begin
    SetColor(GetBkColor);
    Line(x,y,x + b div 2,y + a div 2);
    Line(x,y,x - b div 2,y + a div 2);
    Line(x + b div 2,y + a div 2,x - b div 2, y +a div 2);
 
   // SetFillStyle(1,GetBkColor);
    //bar(x,y,x+storona,y+storona);
   // FloodFill(x,y,GetBkColor);
   End;
   VAR
ptr:tptreug;
world:TGraph;
x,y,y0,a,b:Integer;
col:Byte;
Begin
ClrScr;
WriteLn(' Dvizhenie treugolnika ');
WriteLn(' po sin sprava nalevo');
 
WriteLn(' vvedite cvet c 1 do 15)');
ReadLn(col);
WriteLn('nazhmite ENTER');
ReadLn;
World. Init (DETECT, DETECT, 'C:\FPC\2.4.0\units\i386-win32\graph ' );
y0:=300;
a:=200;
b:=100;
x:=(getmaxX-b div 2);
y:=(getmaxY div 2-a);
{ptr:=new(tptreug,Init(x,y,50));}
New(ptr,Init(x,y,a,b));
ptr^.Show(col);
while x>b div 2 do
 begin
  y:=y0-round(sin(x*pi/180)*120);
  ptr^.Moveto(x,y,col);
  delay (5);
  x:=x-1;
 end;
while x<(getmaxX-b div 2) do
 begin
  y:=y0-round(sin(x*pi/180)*120);
  ptr^.Moveto(x,y,col);
  delay (5);
  x:=x+1;
 end;
 World.Fin;
end.
как я понимаю вместо вот этих трех строк :
Line(x,y,x + b div 2,y + a div 2);
Line(x,y,x - b div 2,y + a div 2);
Line(x + b div 2,y + a div 2,x - b div 2, y +a div 2);
нужно вставить формулу сектора или что-то в этом духе ....
вот если что задание : Движение цветного сектора по синусоиде по середине экрана справа налево и обратно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2012, 22:33
Ответы с готовыми решениями:

Правка кода
Здравствуйте уважаемые будущие коллеги=), читал интересную книгу хотел практики, начал писать...

Правка кода
осталось несколько ошибок никак не могу испрвить using System; namespace ConsoleApplication1 {...

ПРАВКА КОДА
помогите пожалуйста с кодом надо как то его дописать что бы буква жесткого диска сама определялась...

Правка кода
ребят не подскажите что тут исправить. я вообще е пойму может не дошел ещё &lt;html&gt; &lt;head&gt;...

1
110 / 110 / 100
Регистрация: 04.03.2012
Сообщений: 146
01.04.2012, 00:02 2
Цитата Сообщение от NooK Посмотреть сообщение
нужно вставить формулу сектора
Pascal
1
sector(x,y,240,300,100,100);
1
01.04.2012, 00:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2012, 00:02
Помогаю со студенческими работами здесь

Правка кода
Добрый день. Есть подобное задание: Движение закрашенного круга по кромке экрана с изменением...

Правка кода
помогите с кодом,у же везде рыл ни где не нашел переменную для SMTP , мне надо файл по почте...

Правка кода в лабораторной
Есть такой код, вроде все поправили, но блин у меня не запускается, что я делаю не так? include...

pascal / правка кода
Добрый день! нужна помощь в написании пары прог 1)написать прогу для нахождения суммы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru