Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
4 / 5 / 0
Регистрация: 22.11.2015
Сообщений: 143
1

Расстояние между точками. Изображения

07.02.2017, 17:07. Показов 1388. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При написании программ у меня возник вопрос: как работать в паскале в какими-то изображениями? не работать с графикой что-то создавая, как в graph, а с уже созданными изображениями(картинками к примеру). К примеру найти расстояние между двумя точками( в пикселях). Даже если не конкретный ответ, то может почитать где можно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2017, 17:07
Ответы с готовыми решениями:

Расстояние между точками
Здравствуйте! Есть программа: uses CRT; var A:Array of record x,y: integer end; maxrast,d:...

Вычислить расстояние между точками
По заданным координатам двух точек на плоскости Р1 (x1, y1) и Р2 (х2, у2) должно вычисляться...

Найти максимальное расстояние между точками
Прошу помочь!!!! Вводится кол-во точек, точки характеризуются x , y , z. Нужно найти максимальное...

Расстояние между двумя точками в системе координат
Всем привет. В школе задали написать код, который будет находить расстояние между двумя точками в...

12
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 17:45 2
Можно так.
Грузим 2 рисунка в окно и измеряем расстояние между ними мышкой.
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
uses graphABC;
 
var x1,y1,x2,y2,s:integer;
    
procedure MouseDown(x,y,mb:integer);
begin
x1:=x;
y1:=y;
end;
procedure MouseMove(x,y,mb:integer);
begin
x2:=x;
y2:=y;
end;
procedure MouseUp(x,y,mb:integer);
begin
s:=round(sqrt(sqr(x2-x)+sqr(y2-y1)));
textout(100,100,'Расстояние='+inttostr(s));
end;
var p:Picture;
begin
p:=Picture.Create('home1.png');
p.Draw(0,0);
p.Draw(400,200);
onmousedown:=MouseDown;
onmousemove:=MouseMove;
onmouseup:=MouseUp;
end.
1
4 / 5 / 0
Регистрация: 22.11.2015
Сообщений: 143
07.02.2017, 18:01  [ТС] 3
Puporev, Спасибо за ценную помощь. Только пронга так у меня и не работает. Не находит рисунок. Можно это исправить?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 18:03 4
так загрузи какой-то рисунок, какой у тебя есть, конечно программа мой у тебя не найдет.
1
4 / 5 / 0
Регистрация: 22.11.2015
Сообщений: 143
07.02.2017, 18:10  [ТС] 5
Puporev, так я конечно поменял на свой))) но все равно. Ладно попробую ееще
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 18:15 6
Лучший ответ Сообщение было отмечено Утконос как решение

Решение

Можно проще, по 2 кликам мышью.
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
uses graphABC;
 
var x1,y1,x2,y2,k,s:integer;
   
procedure MouseDown(x,y,mb:integer);
begin
if k=0 then
 begin
  x1:=x;
  y1:=y;
  k:=1;
 end
else if k=1 then
 begin
  x2:=x;
  y2:=y;
  k:=2;
 end;
if k=2 then
 begin 
  s:=round(sqrt(sqr(x2-x1)+sqr(y2-y1)));
  textout(100,100,'Расстояние='+inttostr(s));
  k:=0;
 end; 
end;
var p:Picture;
begin
k:=0;
p:=Picture.Create('home1.png');
p.Draw(0,0);
p.Draw(400,200);
onmousedown:=MouseDown;
end.
Вложения
Тип файла: rar Расстояние в окне мышью.rar (14.0 Кб, 2 просмотров)
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 18:25 7
Цитата Сообщение от Утконос Посмотреть сообщение
так я конечно поменял на свой))) но все равно.
Файл нужно или положить в одну папку с программой, либо указать в коде полный путь к нему.
1
4 / 5 / 0
Регистрация: 22.11.2015
Сообщений: 143
07.02.2017, 18:45  [ТС] 8
Puporev, Получилось! Спасибо за помощь. Кстати, вы не знаете можно ли здесь вместо integer использовать real. И обходиться без round? без округления, точнее? Но в целом я просто интересуюсь. Задача решена. Кстати у меня выходит не целое изображение, а фрагмент. можно это исправить?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 18:56 9
Цитата Сообщение от Утконос Посмотреть сообщение
вместо integer использовать real. И обходиться без round?
Конечно можно, просто расстояние будет дробное число, типа 256.589
Второе нужно посмотреть, я тоже каждый день этим не занимаюсь.
0
4 / 5 / 0
Регистрация: 22.11.2015
Сообщений: 143
07.02.2017, 19:01  [ТС] 10
Цитата Сообщение от Puporev Посмотреть сообщение
Конечно можно, просто расстояние будет дробное число, типа 256.589
Я тоже так думал. Но когда начал менять все перестало сходиться и работать. Я и спросил может подвох какой
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 19:09 11
Лучший ответ Сообщение было отмечено Утконос как решение

Решение

второе.
Pascal
1
2
3
4
p:=Picture.Create('Star.bmp');
window.Width:=p.Width;
window.Height:=p.Height;
p.Draw(0,0);
Добавлено через 1 минуту
С расстоянием никаких проблем.
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
uses graphABC;
 
var x1,y1,x2,y2,k:integer;
    s:real;
procedure MouseDown(x,y,mb:integer);
begin
if k=0 then
 begin
  x1:=x;
  y1:=y;
  k:=1;
 end
else if k=1 then
 begin
  x2:=x;
  y2:=y;
  k:=2;
 end;
if k=2 then
 begin 
  s:=sqrt(sqr(x2-x1)+sqr(y2-y1));
  textout(100,100,'Расстояние='+floattostr(s));
  k:=0;
 end; 
end;
var p:Picture;
begin
k:=0;
p:=Picture.Create('Star.bmp');
window.Width:=p.Width;
window.Height:=p.Height;
p.Draw(0,0);
onmousedown:=MouseDown;
end.
Добавлено через 4 минуты
Цитата Сообщение от Утконос Посмотреть сообщение
Я и спросил может подвох какой
Читать нужно, думать и тренироваться, на халяве далеко не уедешь.
1
4 / 5 / 0
Регистрация: 22.11.2015
Сообщений: 143
07.02.2017, 19:17  [ТС] 12
Puporev, с расстоянием и правда без проблем. А вот со вторым... У меня когда я заменил на это отрылось окно с

Добавлено через 1 минуту
неполным изображением. Тут же свернулось. Одна из строк стала желтой(никогда такого не видел

Добавлено через 33 секунды
а затем открылось с неполным изображением и все повисло. Ужас
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2017, 19:27 13
Ну так не грузи что-то страшное. Я грузил 1024х768, нормально.
Вот что ты грузишь, если можно скинь архив файла.
0
07.02.2017, 19:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2017, 19:27
Помогаю со студенческими работами здесь

Вычислить расстояние между самыми отдалёнными точками
Задача: Имеем 3д пространство(систему координат x,y,z). В этом пространстве находятся точки с...

Нахождение расстояния между точками
Составить программу нахождения из набора точек на плоскости двух наиболее удаленных друг от друга,...

Расстояние между точками
,.

Расстояние между точками
Не могу ни как заставить прогу, что бы она сразу находила сумму расстояний от точки А до 10-ти...

Максимальное расстояние между точками
Дано множество A из N точек (точки заданы своими координатами x, y). Найти пару различных точек...

Вычислить расстояние между точками
Создание линейного алгоритма. 1.Вычислить расстояние между точками (x1,y1)и (x2,y2). 2.Вычислить...


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

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