Форум: "Потрепаться";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
ВнизПомогите, пожалуйста (срочно!). Найти похожие ветки
← →
cok (2002-03-30 19:38) [0]Извините, что может быть не в тему, но мне не к кому больше обратиться (в такое время суток:)).
Мне даны координаты двух противоположных вершин квадрата, надо найти координаты остальных вершин (на плоскости).Как их можно найти?
← →
Anatoly Podgoretsky (2002-03-30 19:48) [1]допустим нижний левый и верхний правый, алгоритм от этого не меняется.
x1 x2
x3 x4
x1.left := x3.left
x1.top := x2.top
...
и так далее, это работает и для прямоугольника
← →
Anatoly Podgoretsky (2002-03-30 19:48) [2]В каком классе учишься?
← →
Дима2 (2002-03-30 19:52) [3]У квадрата все стороны РАВНЫ. Вот так то.
x1,y1_____x2,y2
| |
| |
x3,y3______x4,y4
sqr((x2-x3)^2+(y2-y3)^2)=a(диагональ)
x:=a/cos45{cторона квадрата}
x1=x2-x; И т.д.
← →
Agent Smith (2002-03-30 20:02) [4]Значит так. Алгоритм такой: Есть точки a(x1,y1) и b(x2,y2). а - левая верхняя, а b - правая нижняя. Вот. Получаем c(x1,y2)-левая нижняя и d(x2,y1)-правая верхняя. Система координат - старая Паскалевская:
(0,0)-------------------->x
|
| a-------d
| | |
| | |
| c-------b
|
y
Вроде так, но могу ошибаться.
← →
Agent Smith (2002-03-30 20:03) [5]Упс...На рисунке квадрат косой сделал...
← →
Doom (2002-03-30 20:17) [6]нет -нет
вычисляем длину диагонали:
d:= sqrt((x2-x1)^2 + (y2-y1)^2)
на ее середине находится точка пересечения дивгоналей
зная длину половины диагонали и
координаты ее середины
dx = (x1+x2)/2, dy = (y1+y1)/2
строим такие же половины от центра этой диагонали перпендикулярно (на серединном перпендикуляре) и но длине находим их координаты.
Если чтто- нибудь их этого не понятно тогда пожалу тебе нужно открыть учебник по математику для 8 класса.
Если конечно ты не в 7 учишься.
Все
← →
KaPaT (2002-03-30 20:34) [7]Нафига какие-то диагонали считать???
Полностью согласен с Anatoly Podgoretsky и Agent Smith.
И нечего в магазин через северный полюс ходить!
← →
Keymaster (2002-03-30 21:19) [8]Да.... ещё поверхностных интегралов не хватает :)
← →
Anatoly Podgoretsky (2002-03-30 21:30) [9]a,b -> c,d
c.x := a.x;
d.x := b.x;
c.y := b.y;
d.y := a.y;
← →
Doom (2002-03-30 22:03) [10]квадрат не стоит параллельно земле проще говоря
← →
Anatoly Podgoretsky (2002-03-30 22:10) [11]Если такое условие будет указано, то в ход пойдет sqrt((x2-x1)^2 + (y2-y1)^2) и далее по твоему коду
← →
Doom (2002-03-31 00:07) [12]Я думаю молодой человек как раз об этом и спрашивал иначе его вопрос вообще ребяческим бы выглядел
← →
Aleks1 (2002-03-31 01:55) [13]2 Doom © (31.03.02 00:07)
Отталкиваясь от вашей анкеты, термин "молодой человек" скорее подходит Вам, а автору вопроса, отталкиваясь от его сути, более подходит термин "юноша".
Кстати по-моему у Вас в анкете очепятка в фамилии. Некоторые глупые могут подумать, что Вы заика.
← →
Doom (2002-03-31 01:59) [14]Помогите пожалуйста! Как эту очепатищу исправить?
← →
Aleks1 (2002-03-31 03:11) [15]mailto: delphi@mastak.com
← →
Anatoly Podgoretsky (2002-03-31 11:32) [16]Doom © (31.03.02 01:59)
http://delphi.mastak.ru/anketa/
← →
Rooman (2002-03-31 14:09) [17]Читайте векторную алгебру...
← →
cok (2002-03-31 14:53) [18]Спасибо большое всем за помощь, НО
вы мне находили координаты квадрата,если его грани паралленьны осям координат, а если квадрат повернут на некоторый угол то вычисления, типо x3:=x1, y3:=y4 не попрут.
>2 Anatoly Podgoretsky ©
В 11-м.
← →
I (2002-03-31 14:55) [19]Главное тогда что нужно знать так это то н какойугол повепнут квадрат и все просто
← →
cok (2002-03-31 15:06) [20]>I (31.03.02 14:55)
>Главное тогда что нужно знать так это то н какойугол повепнут >квадрат и все просто
Но в том и беда, что я не знаю на кокой (это все надо вычислять), иначе я бы и не спрашивал
← →
Бурундук (2002-03-31 16:14) [21]Даны (x1, y1) (x2, y2) найти (x3, y3) (x4, y4)
xC := (x1+x2)/2;
yC := (y1+y2)/2;
Dx := x2-x1;
Dy := y2-y1;
x3 := xC + Dy/2;
y3 := yC - Dx/2;
x4 := xC - Dy/2;
y4 := yC + Dx/2;
← →
Rooman (2002-03-31 16:17) [22]без задания угла задача неразрешима!
← →
Doom (2002-04-01 00:49) [23]Rooman
Ты неправ потому что это -квадрат
читайте, я вверху писал
← →
Anatoly Podgoretsky (2002-04-01 02:20) [24]Для квадрата решается и решения были приведены
← →
Sergey_n (2002-04-01 02:26) [25]Наверно над нами издеваються, или какой то америкоза вопрос задал????????? %)))
← →
Anatoly Podgoretsky (2002-04-01 11:23) [26]Не думаю, вероятнее просто с математикой не лады
← →
cok (2002-04-01 14:23) [27]С математикой у меня как раз лады.
← →
Alx2 (2002-04-01 15:07) [28]>С математикой у меня как раз лады.
А с чем тогда был связан вопрос?
Если подробно расписать ход решения, то (у меня) получается так:
Пусть x1,y1, x2,y2 - координаты противоположных углов.
Ищем x3,y3 и x4,y4
Найдем сначала ограничение на (x3,y3) (x4,y4), связанное с тем, что вектор <(x4-x3),(y4-y3)> должен быть ортоганален вектору <(x2-x1),(y2-y1)> и равен ему по модулю. Это можно добиться рассматривая скалярное произведение векторов:
(x2-x1)*(x4-x3)+(y4-y3)*(y2-y1)=0.
Откуда (соблюдая условия равенства длин)
x4-x3 = y2-y1
y4-y3 = x1-x2;
- первая система уравнений.
Вторая система получается из требования, что точкой пересечения диагонали делятся пополам.
То есть:
(x4+x3)/2=(x1+x2)/2
(y4+y3)/2=(y1+y2)/2
Решаем ее и получаем "Бурундук (31.03.02 16:14)"
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c