Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
Anton.
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 2
#1

Перемещение линии по радиусу. - Turbo Pascal

29.01.2011, 12:04. Просмотров 784. Ответов 3
Метки нет (Все метки)

всем привет!решил создать программу что-ввиде радара. но не знаю как оживить только одну белую линии,чтобы она перемещалась по радиусу окружности. просто хочеться разобраться. вот есть только код простой картинки:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program radar;
    uses graph;
  var
      grdriver,grmode:integer;
 begin
      grdriver:=detect;
         initgraph(grdriver,grmode,'c:\program files\schoolPak\pak\bp\vga256.bgi');
 setcolor(2);
circle(330,235,233);
circle(330,235,137);
circle(330,235,71);
    line(329,2,329,468);
     line(98,233,563,233);
       line(179,58,480,410);
        line(180,415,475,55);
   setcolor(white);
 lineto(280,459);{ вот эту линию нужно заставить перемещаться по радиусу, как в часах короче}
readln;
closegraph;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2011, 12:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перемещение линии по радиусу. (Turbo Pascal):

По заданному радиусу R найти объем шара и площадь его поверхности - Turbo Pascal
Помогите пожалуйста с задачей по информатике . Тема Турбо Паскаль. Вот задача: По заданному радиусу R найти объем шара и площадь его...

Вместо квадрата сделать шар и чтобы он крутился посередине по определенному радиусу - Turbo Pascal
прога рабочая, нужно вместо квадрата сделать шар и чтобы он крутился посередине по определенному радиусу. квадрат в этой проге "ходит" по...

площадь кольца, ширина которого равна h, а отношение радиуса большей окружности к радиусу меньшей окружности равно d - Pascal
Помогите пожалуйста с задачей Вычислите площадь кольца, ширина которого равна h, а отношение радиуса большей окружности к радиусу...

Перемещение линии по оси х - C#
Подскажи ,пожалуйста. Есть нарисованная линия по двум точкам. Как можно осуществить перемещение этой линии по оси х или оси у???

Перемещение нарированный линии с клавиатуры - C#
Как мне переместить линию клавишами t,f,g,h с зажатой клавишей shift и как очистить форму клавишей x? Код формы: using System; using...

Осуществить вращение линии и ее перемещение - Visual Basic
есть линия, которая является спицей колеса. как сделать так, чтобы она вращалась? фрагмент кода: Private Sub Timer1_Timer() kx2o =...

3
Puporev
Модератор
54019 / 41652 / 14731
Регистрация: 18.05.2008
Сообщений: 97,917
29.01.2011, 13:06 #2
Вот так по часовой стрелке, если наоборот, поменять синус и косинус при вычислении координат конца линии, скорость вращения зависит от задержки(delay) и от приращения угла а.
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
program radar;
uses graph,crt;
var grdriver,grmode,xc,yc,a,x,y,r:integer;
begin
grdriver:=detect;
initgraph(grdriver,grmode,'c:\program files\schoolPak\pak\bp\vga256.bgi');
xc:=getmaxX div 2;
yc:=getmaxY div 2;
r:=230;
a:=0;
repeat
setcolor(2);
circle(xc,yc,r);
circle(xc,yc,r-100);
circle(xc,yc,r-160);
line(xc,yc-r,xc,yc+r);
line(xc-r,yc,xc+r,yc);
line(xc+round(r*cos(pi/4)),yc-round(r*sin(pi/4)),xc-round(r*cos(pi/4)),yc+round(r*sin(pi/4)));
line(xc-round(r*cos(pi/4)),yc-round(r*sin(pi/4)),xc+round(r*cos(pi/4)),yc+round(r*sin(pi/4)));
setcolor(white);
x:=xc+round(r*sin(a*pi/180));
y:=yc-round(r*cos(a*pi/180));
line(xc,yc,x,y);
delay(50);
setcolor(0);
circle(xc,yc,r);
circle(xc,yc,r-100);
circle(xc,yc,r-160);
line(xc,yc-r,xc,yc+r);
line(xc-r,yc,xc+r,yc);
line(xc+round(r*cos(pi/4)),yc-round(r*sin(pi/4)),xc-round(r*cos(pi/4)),yc+round(r*sin(pi/4)));
line(xc-round(r*cos(pi/4)),yc-round(r*sin(pi/4)),xc+round(r*cos(pi/4)),yc+round(r*sin(pi/4)));
line(xc,yc,x,y);
a:=a+1;
until keypressed;
end.
1
Anton.
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 2
29.01.2011, 22:23 #3
а вот еще вопросик...
в 25 строке вашей версии программы там где setcolor я изменил цвет на green. изменил delay и поставил 1. теперь при перемещении линии она закрашивает область всего круга...как сделать чтобы после полного оборота область круга очищалась, т.е первый оборот круг закрашен,второй оборот чистая область и так через каждый оборот.спасибо.
0
Puporev
Модератор
54019 / 41652 / 14731
Регистрация: 18.05.2008
Сообщений: 97,917
30.01.2011, 07:34 #4
Считайте обороты и меняйте цвет закраски, например нечетные-зеленый, четные черный(0).
Pascal
1
2
3
4
5
6
7
8
k:=0;
repeat
k:=k+1;
if odd(k) then c:=2
else c:=0;
Setcolor(c);
все делаем
until keypressed or (k>1000);//ограничение по к не обязательно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2011, 07:34
Привет! Вот еще темы с ответами:

.NET 4.x Перемещение линии при нажатии на кнопку - C# WPF
Всем доброе время суток) я совсем недавно начал изучать WPF и не могу реализовать задачу.Задача,чтобы на форме была беговая дорожка и при...

Как сделать перемещение линии на канве? - Delphi
Допустим есть линия, которая соединяет два каких то объекта. Как сделать чтобы при перемещении любого из объектов линия продолжала тянутся...

Перемещение точки по линии из 1 обьекта в другой - Delphi
Предположим есть область (А и Б ) из области А в область Б лежит кривая или линия (соединены ) . Задача состоит в том , чтобы по этой...

Перемещение курсора, черчение линии. События MouseUp и MouseDown - Delphi
Напишите приложение, которое при нажатии мыши устанавливает курсор в точку, а при отпускании кнопки мыши в другом месте формы рисует...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru