Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-26119
Дмитрий Баранов
2002-04-24 15:31
2002.05.09
Плагины и MDI формы.


1-26128
Дмитрий Баранов
2002-04-24 17:51
2002.05.09
перкомпиляция VCL с отладочной информацией


1-26140
LiNkS
2002-04-24 14:31
2002.05.09
Form1 и Form2


14-26260
alienb
2002-04-02 17:58
2002.05.09
Как определить имя хоста по IP?


3-26003
Jakov
2002-04-05 13:59
2002.05.09
.dbx - ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский