Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.09;
Скачать: CL | DM;

Вниз

Помогите, пожалуйста (срочно!).   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.016 c
14-26256
111
2002-03-31 22:45
2002.05.09
Win3.11 ;)


1-26080
dimich
2002-04-26 12:05
2002.05.09
Наблюдатель программа


1-26059
rank
2002-04-25 02:07
2002.05.09
Как удалить строку из середины Stringgrid а?


1-26076
SPeller
2002-04-26 12:00
2002.05.09
Лимит в INI файле


6-26215
Beka
2002-02-24 13:57
2002.05.09
HTML вместе с Delphi