Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 05.11.2011
Сообщений: 32
1

Найти координаты четвертой вершины прямоугольника

09.05.2014, 15:05. Показов 5408. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста решить задачку..! Даны целочисленные координаты трех вершин прямоугольника, стороны которого параллельны координатным осям. Найти координаты его четвертой вершины.

Добавлено через 1 час 35 минут
Помогите пожалуйста! На завтра надо уже на экзамен...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2014, 15:05
Ответы с готовыми решениями:

Определить координаты четвертой вершины
помогите довести решение до ума или я чето не правельно делаю задача. Пусть даны координаты трех...

Известны координаты вершин прямоугольника ABCD , A(x1,y1), B(x2,y2), C(x3,y3). Найти площадь и периметр прямоугольника.
как решить эту задачу с помощью delphi? Известны координаты вершин прямоугольника ABCD , A(x1,y1),...

Найти координаты четвертой точки
Даны три точки с координатами (x1 , y1), (x2 , y2 ) , (x3 , y3 ) которые являются вершинами...

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

16
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,251
09.05.2014, 15:06 2
И в чем проблема? Имеется по три координаты X и Y. Две из трех равны, а та которая не имеет пары и есть искомая.
0
1 / 1 / 0
Регистрация: 05.11.2011
Сообщений: 32
09.05.2014, 17:07  [ТС] 3
проблема в том что нужен код в Delphi нахождения этой четвертой вершины, а я незнаю как описать!
0
8 / 8 / 5
Регистрация: 27.10.2013
Сообщений: 170
09.05.2014, 18:27 4
Нашел решение на другом форуме, и мне стало интересно, как, объясните как он так находит?
Delphi
1
2
x4:=x1 xor x2 xor x3;
y4:=y1 xor y2 xor y3;
Добавлено через 5 минут
Хотя не, не проходит тесты

Добавлено через 25 секунд
Только 3 теста прошел из 13
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
09.05.2014, 19:15 5
Mikky Lova, очень просто это работает. Допустим, x координаты вершин прямоугольника равны a, a, b, b. xor - это т.н. исключающее ИЛИ. Свойства xor-а:

1) a xor a = 0
2) a xor 0 = a

Т.о., например, если у нас есть набор x координат вершин (a, a, b), то для нахождения последней мы делаем: ((a xor a) xor b) = 0 xor b = b.

Что, правда не работает? Хм, интересно. Покажите тесты, пожалуйста.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
09.05.2014, 22:52 6
только для олдскульщиков, легко к пониманию:
Delphi
1
if (x1=x2) then x4:=x3 else x4=x2;
хотя вариант с XOR элегантен и таинственен )))
0
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,251
09.05.2014, 23:39 7
Цитата Сообщение от krapotkin Посмотреть сообщение
только для олдскульщиков, легко к пониманию:
if (x1=x2) then x4:=x3 else x4=x2;
Но неверно.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
10.05.2014, 00:13 8
northener, да
else if (x1=x3) x4=x2 else x4:=x1

очень извиняюсь
0
northener
10.05.2014, 01:39
  #9

Не по теме:

Цитата Сообщение от krapotkin Посмотреть сообщение
очень извиняюсь
За что извиняться? Ты вроде не наступал мне на ногу. :)

0
8 / 8 / 5
Регистрация: 27.10.2013
Сообщений: 170
10.05.2014, 11:37 10
Кому все таки интересно, вот сайт, наверняка знаете, а задача №2806.
Надо всего лишь зарегистрироваться, и указать перейти к номеру задачи..поймете.
Вообще я эту задачу когда решал на байтике, я отталкивался от диагоналей. Уже не совсем понимаю свой раннее написанный код, там все идет от геометриии а у меня с ней, не очень хорошо
Вот код проходит 12 из 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
program Snipers;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
 
var x1,y1, x2,y2, x3,y3, x4,y4, dx1,dy1,dx2,dy2,ndx,ndy :longint;
 
procedure diag(x1,y1,x2,y2,x3,y3 : longint; var x4, y4, x5, y5, x6 ,y6 :longint);
begin
if (((x3 - x1)*(x3-x2) + (y3 - y1)*(y3-y2)=0))   then
begin
x4:= x1;
y4:= y1;
x5:= x2;
y5:= y2;
x6:= x3;
y6:= y3;
end else
    if (((x2 - x1)*(x1 - x3) + (y2 - y1)*(y1 - y3)=0)) then
    begin
    x4:= x2;
    y4:= y2;
    x5:= x3;
    y5:= y3;
    x6:= x1;
    y6:= y1;
    end  else
         begin
         x4:= x1;
         y4:= y1;
         x5:= x3;
         y5:= y3;
         x6:= x2;
         y6:= y2;
         end;
end;
 
 
begin
readln(x1,y1,x2,y2,x3,y3);
diag(x1,y1,x2,y2,x3,y3,dx1,dy1,dx2,dy2,ndx,ndy);
 
x4:= dx1-ndx+dx2;
y4:= dy1-ndy+dy2;
 
writeln(x4,' ',y4);
readln
end.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
10.05.2014, 12:08 11
Mikky Lova,
метод диагоналей должен решать задачу в общем виде, без учета расположения
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
10.05.2014, 21:24 12
Mikky Lova, в условии ничего не сказано про то, что сторону прямоугольника параллельны координатным осям..
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
10.05.2014, 22:09 13
Цитата Сообщение от pasha123321 Посмотреть сообщение
.. стороны которого параллельны координатным осям...
вроде, сказано
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
10.05.2014, 23:33 14
krapotkin, неа, не сказано..

Руководство по У.У.Л.П. решило расставить 4-х снайперов на поле особым образом, а именно, чтобы они образовывали прямоугольник. Три снайпера без проблем заняли свои позиции, а четвертый никак не мог найти своей позиции и в поисках ее начал бродить по полю. Первый снайпер предлагал воспользоваться методом Шредингера, ведь существует отличная от нуля вероятность, что снайпер сам найдет нужное место. Второй снайпер предлагал воспользоваться методами аналитической геометрии. А третий снайпер предложил написать программу, которая методом перебора найдет координаты четвертого снайпера.

Входные данные

Шесть чисел: x1, y1, x2, y2, x3, y3 — координаты трех снайперов через пробел. Гарантируется, что все три координаты помещаются в тип longint (int в си).

Выходные данные

Выведите координаты четвертого снайпера.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
11.05.2014, 05:54 15
решали совсем не эту задачу, в ту, что в заголовке темы

Не по теме:

надо читать

4-снайперов-самоубийц.
судя по задаче они обязаны сидеть в секторе обстрела сразу трех своих коллег

0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
11.05.2014, 20:06 16
krapotkin, таки да Ну, очевидно, топикстартеру подощло бы решение с xor-ом. Для этой же задачи, ИМХО, элегантным решением было бы перейти в СК, оси которой параллельны осям прямоугольника, воспользоваться xor-ом, а потом вернуться обратно.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
12.05.2014, 05:43 17
tegauss, количество действий по нахождению точки с XORом и переходом координат увеличивается, что смазывает всю элегантность
тут лучше чистая геометрия - отложить от точки вектор параллельно имеюшейся стороне - это гораздо менее сложно.
0
12.05.2014, 05:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2014, 05:43
Помогаю со студенческими работами здесь

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

Найти все вершины графа, недостижимые из заданной вершины
Найти все вершины графа, недостижимые из заданной вершины. Нужен алгоритм!! Я запутался!

Заданы координаты центра и вершины правильного треугольника
1) Заданы координаты центра и вершины правильного треугольника. Определить координаты двух других...

Даны два прямоугольника, стороны которого параллельны или перпендикулярны осям координат. Известны координаты
Даны два прямоугольника, стороны которого параллельны или перпендикулярны осям координат. Известны...


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

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