С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 9

Соединить точки (по координатам из таблицы) ломаной линией

02.07.2012, 11:10. Показов 5360. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана таблица с координатами (х, у) семи точек. Изобразить их на рисунке и по выбору пользователя либо слева-направо, либо снизу-вверх, либо в порядке перечисления соединить ломаной линией. Найти длину полученной линии. Выбор способа соединения точек осуществлять с помощью радиокнопок.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2012, 11:10
Ответы с готовыми решениями:

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

Соединить точки на плоскости замкнутой ломаной линией без самопересечений
Доброго времени суток. Задача такая : Соединить точки на плоскости замкнутой ломаной линией без самопересечений. Дошел до момента,...

Как соединить точки линией?
Имеется множество точек на графике. Как их соединить одной кривой?

2
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 6
02.07.2012, 13:38
а в чем у тебя именно проблема?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
02.07.2012, 16:18
Лучший ответ Сообщение было отмечено elfy_89 как решение

Решение

А что значит слева-направо и снизу-вверх? Это как?

Добавлено через 1 час 13 минут
Наверное так...
Delphi
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
const n=7;
type  mas=array[1..n] of Tpoint;
 
var
  Form1: TForm1; 
   t1,t2,t3:mas; //3 массива для вывода
 
implementation
 
{$R *.lfm}
//рисование точек
procedure Tochki(a:mas;cv:TCanvas);
var i:byte;
begin
 with cv do
  begin
   for i:=1 to n do
     begin
      brush.color:=clBlue;
      brush.style:=bsSolid;
      rectangle(a[i].x-2,a[i].y-2,a[i].x+2,a[i].y+2); //нарисуем точки-квадратики
      font.color:=clBlue;
      brush.style:=bsClear;
      textout(a[i].x+5,a[i].y,IntToStr(i)); //подпишем номера
     end;
 end;
end;
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j:byte;
    x:TPoint;
begin
 randomize;
with sg do
 begin
  colcount:=3;
  rowcount:=8;
  defaultcolwidth:=30;
  cells[1,0]:='X';
  cells[2,0]:='Y';
  for i:=1 to n do
   begin
    t1[i].x:=20+random(Image1.Width-40);
    t1[i].y:=20+random(Image1.Height-40);
    cells[0,i]:=IntToStr(i);
    cells[1,i]:=IntToStr(t1[i].x);
    cells[2,i]:=IntToStr(t1[i].y);
   end;
 end;
t2:=t1;
for i:=1 to n-1 do //отсортируем массив по возрастанию координаты Х
for j:=i+1 to n do
if t2[i].x>t2[j].x then
 begin
  x:=t2[i];
  t2[i]:=t2[j];
  t2[j]:=x;
 end;
t3:=t1;
for i:=1 to n-1 do //отсортируем массив по убыванию координаты Y
for j:=i+1 to n do
if t3[i].y<t3[j].y then
 begin
  x:=t3[i];
  t3[i]:=t3[j];
  t3[j]:=x;
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var i:byte;
begin
with Image1.Canvas do
  begin
   clear;//очистим канву и назначим белый цвет фона
   brush.Style:=bsSolid;
   brush.color:=clWhite;
   rectangle(0,0,width,height);
  end;
 if RadioButton1.Checked then Tochki(t2,Image1.Canvas)//слева направо
 else if RadioButton2.Checked then Tochki(t3,Image1.Canvas)//снизу вверх
 else if RadioButton3.Checked then
  begin
   with Image1.Canvas do
    begin
     pen.color:=clBlack;
     moveto(t1[1].x,t1[1].y);
     for i:=1 to n do
     lineto(t1[i].x,t1[i].y);//рисуем ломаную
    end;
  Tochki(t1,Image1.Canvas)//рисуем точки как ввели
 end
else
 begin
  Showmessage('Вы не выбрали способ вывода');
  exit;
 end;
end;
Добавлено через 14 минут
Забыл про длину линии, но сам доделаешь.
Delphi
1
2
3
4
5
var L:real;
begin
L:=0;
for i:=1 to n-1 do
L:=L+sqrt(sqr(t1[i].x+t1[i+1].x)+sqr(t1[i].y+t1[i+1].y));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2012, 16:18
Помогаю со студенческими работами здесь

Как соединить две точки линией?
у меня есть 2 точки нарисованные с помощью GDI, нужно их соединить линией,но почему то криво все выходит,как я соединяю:отлавливаю...

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

По координатам соединить точки линиями указанного цвета
Добрый день. Есть файл такого содержания: &lt;path d=&quot;M300,50L500,150Z&quot;stroke=&quot;green&quot;/&gt; &lt;path...

Обход препятствий ломаной линией - по вертикали
Доброго времени суток, уважаемые форумчане. Помогите решить непростой вопрос. Есть макрос обхода препятствий - из фигур. Путь...

Определить длину ломаной по координатам
Здравствуйте. Проблема с решением задачи &quot;Ловушки&quot;. Алгоритм ясен, ломаная образует многоугольник, начальная и конечная вершина...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru