I have drawn a rectangle. I know its (x1,y1) Top Left and (x2,y2) Bottom Right coordinates.. I also have the height h and width w of drawn rectangle.. How can I find the center coordinates (x,y) ?
I am currently using the following formula.
(x,y) = (x2 + x1)/2, (y2+y1)/2
It gives the correct y coordinate but no luck in x.
Lucifer
29.3k24 gold badges90 silver badges142 bronze badges
asked Mar 16, 2012 at 9:36
4
The center of rectangle is the midpoint of the diagonal end points of rectangle.
Here the midpoint is ( (x1 + x2) / 2, (y1 + y2) / 2 )
.
That means:
xCenter = (x1 + x2) / 2
yCenter = (y1 + y2) / 2
Let me know your code.
answered Mar 16, 2012 at 10:12
Prasad GPrasad G
6,6927 gold badges42 silver badges65 bronze badges
3
Center x = x + 1/2 of width
Center y = y + 1/2 of height
If you know the width and height already then you only need one set of coordinates.
dota2pro
7,0687 gold badges43 silver badges78 bronze badges
answered Sep 21, 2013 at 11:29
frogfrog
3013 silver badges2 bronze badges
0
We can calculate using mid point of line formula,
centre (x,y) = new Point((boundRect.tl().x+boundRect.br().x)/2,(boundRect.tl().y+boundRect.br().y)/2)
answered Nov 21, 2013 at 6:58
VinayakVinayak
6,0261 gold badge32 silver badges30 bronze badges
Как найти центральную координату прямоугольника? [закрытый]
Я нарисовал прямоугольник. Я знаю его (x1,y1) верхние левые и (x2,y2) нижние правые координаты.. У меня тоже есть высота h и ширина W нарисованного прямоугольника.. Как найти координаты центра (x, y) ?
в настоящее время я использую следующую формулу.
Он дает правильную координату y, но не повезло в x.
3 ответов
Дайте мне знать ваш код.
центр x =
x + 1/2 ширины
Центр y =
y + 1/2 высоты
Если вы уже знаете ширину и высоту, вам нужен только один набор координат.
Определить центр прямоугольника
Не знаю, как точно называется. Допустим, есть прямоугольник такого вида:
Как определить его центр? Система координат декартова, координаты каждой вершины известны(x, y). Или подскажите, в какую сторону курить.
Должно работать для любого параллелепипеда:
Достаточно даже 2 противоположных вершин:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками математика или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как найти центр прямоугольника
Я нарисовал прямоугольник. Я знаю его (x1, y1) верхний левый и (x2, y2) нижний правый координаты. У меня также есть высота h и ширина w рисованного прямоугольника. Как найти координаты центра (x, y)?
В настоящее время я использую следующую формулу.
Он дает правильную координату y, но не везет в x.
- Выберите вкладку “Главная” панель “Рисование” раскрывающийся список “Прямоугольник” Угол . найти
- Продолжайте нажимать клавишу пробела до тех пор, пока не появится курсор
Свойства
Зная стороны прямоугольника, можно вычислить все остальные его параметры, используя следующий ход действий. Периметр прямоугольника представляет собой удвоенную сумму его сторон, поэтому его можно сразу вычислить. P=2(a+b)
Площадь прямоугольника равна произведению его сторон, поэтому ее также можно найти сразу. S=ab
Диагонали в прямоугольнике являются конгруэнтными, каждая из них образует прямоугольный треугольник со сторонами прямоугольника. Из теоремы Пифагора каждая диагональ будет равна квадратному корню из суммы квадратов сторон прямоугольника. (рис. 56.1) d_1=d_2=√(a^2+b^2 )
Из этого же прямоугольного треугольника можно найти углы α и β при диагоналях, зная только стороны прямоугольника. Отношения катетов друг к другу дают тангенс или котангенс углов треугольника, поэтому α и β будут равны арктангенсу отношений сторон, а дальше значение в градусах можно найти, используя таблицы тангенсов. α=arc tan〖b/a〗 β=arc tan〖a/b〗
Углы γ и δ, образованные пересечением диагоналей, как видно из чертежа, через прямоугольный треугольник с полуосью, равны удвоенным значениям α и β соответственно. (рис.56.2) γ=2α δ=2β
Так как углы у прямоугольника все равны друг другу, вокруг него можно описать окружность. Центр окружности будет находиться в точке пересечения диагоналей, и следовательно, радиус описанной окружности будет равен половине диагонали. (рис.56.3) R=d/2=√(a^2+b^2 )/2
Я нарисовал прямоугольник. Я знаю его (x1,y1) верхние левые и (x2,y2) нижние правые координаты.. У меня тоже есть высота h и ширина W нарисованного прямоугольника.. Как найти координаты центра (x, y) ?
в настоящее время я использую следующую формулу.
(x,y) = (x2 + x1)/2, (y2+y1)/2
Он дает правильную координату y, но не повезло в x.
3 ответов
The center of rectangle is the mid point of the diagonal end points of rectangle.
Here the midpoint is ( (x1 +x2)/2 ,(y1 + y2)/2 ).
that means xCenter = (x1 +x2)/2
yCenter = (y1 + y2)/2
Дайте мне знать ваш код.
центр x =
x + 1/2 ширины
Центр y =
y + 1/2 высоты
Если вы уже знаете ширину и высоту, вам нужен только один набор координат.
мы можем рассчитать, используя среднюю точку формулы линии,
centre (x,y) = new Point((boundRect.tl().x+boundRect.br().x)/2,(boundRect.tl().y+boundRect.br().y)/2)
Не знаю, как точно называется. Допустим, есть прямоугольник такого вида:
Как определить его центр? Система координат декартова, координаты каждой вершины известны(x, y). Или подскажите, в какую сторону курить.
задан 10 авг 2017 в 23:23
4
Должно работать для любого параллелепипеда:
xc = average(x0, x1, x2, x3)
yc = average(y0, y1, y2, y3)
Достаточно даже 2 противоположных вершин:
xc = average(x0, x1)
yc = average(y0, y1)
ответ дан 10 авг 2017 в 23:38
ZergatulZergatul
11.3k1 золотой знак19 серебряных знаков32 бронзовых знака
1
Asdf 1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
||||||||
1 |
||||||||
Нахождение центра прямоугольника28.10.2012, 20:38. Показов 9931. Ответов 40 Метки нет (Все метки)
Добрый вечер! Стокнулся с проблемой, на двойном клике мыши в центре последнего нарисованного прямоугольника надо вывести его площдь (в пикселях в квадрате). Так вот, есть код, который рисует прямоугольники и всё такое, только как найти центр прямоугольника?
Даже специально написал код для вывода координат мыши, но на двойном щелчке не работает, только на одинарном
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
28.10.2012, 20:38 |
Ответы с готовыми решениями: Вращение прямоугольника вокруг центра. Вращение прямоугольника вокруг центра Найти координаты всех вершин прямоугольника и его центра Определить координаты центра, радиус и площадь круга, описанное вдоль прямоугольника 1) Даны (x0, y0,… 40 |
castaway 4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
||||
28.10.2012, 20:40 |
2 |
|||
только как найти центр прямоугольника?
0 |
Asdf 1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
||||
28.10.2012, 20:55 [ТС] |
3 |
|||
Блин… На одинарный щелчёк всё супер, показывает текст в центре прямоугольника, а на двойной не получается… Или я что-то не так пишу
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
28.10.2012, 20:58 |
4 |
Двойной щелчек обрабатывается сообщением WM_LBUTTONDBLCLK.
1 |
1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
|
28.10.2012, 22:40 [ТС] |
5 |
Незнал Спасибо, то что нужно Добавлено через 8 минут
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
28.10.2012, 22:43 |
6 |
Стороны какого прямоугольника? Который ты обозначаешь через BGNx и BGNy ?
0 |
1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
|
28.10.2012, 22:47 [ТС] |
7 |
Ммм… Нет, программа рисует не 1 прямоугольник, а много прямоугольников и чтобы по любому на 2-ой клик вывело его площадь. Хотя… Да, через верний левый угол, BGNx, BGNy
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
28.10.2012, 22:53 |
8 |
Площадь считается так: (ENDx – BGNx) * (ENDy – BGNy)
1 |
1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
|
29.10.2012, 00:13 [ТС] |
9 |
Всё спс, работает как надо
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
29.10.2012, 00:14 |
10 |
Пожалуйста
0 |
1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
|
29.10.2012, 00:20 [ТС] |
11 |
Ещё 1 вопрос, чтобы каждый раз, рисуя новый прямоугольник, цвет его менялся, хотябы была череда, зелёный и красный, что надо добавить? Пробовал ещё 1 кисть добавлять, ругается… Как ещё правильно добавить? Через MW_PAINT?
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
29.10.2012, 00:23 |
12 |
Пробовал ещё 1 кисть добавлять, ругается… Как ещё правильно добавить? Через MW_PAINT? Покажи как пробовал, лучше код целиком.
0 |
Asdf 1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
||||
29.10.2012, 00:38 [ТС] |
13 |
|||
Примерно выглядело вот так, таким способом добавлял.
Добавлено через 7 минут
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
29.10.2012, 00:41 |
14 |
Создать кисть ты можешь где угодно.
0 |
1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
|
29.10.2012, 19:53 [ТС] |
15 |
Окей, попробуем Добавлено через 19 часов 0 минут
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
29.10.2012, 19:59 |
16 |
как мне написатЬ, что я хочу в этой функции перерисовать именно прямоугольник BGNx, BGNy, а не какой то ещё рисовать на WM_PAINT? А как ты это указывал без функции?
0 |
Asdf 1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
||||
29.10.2012, 20:38 [ТС] |
17 |
|||
Просто получается, что ещё раз придёться обьявлять эти 2 переменые или это не обязательно?
Добавлено через 3 минуты
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
29.10.2012, 20:45 |
18 |
Попробуй не создавать функцию, просто объяви WM_PAINT и перенеси туда всю прорисовку из WM_RBUTTONUP, а заместо неё добавь InvalidateRect().
0 |
1 / 1 / 0 Регистрация: 18.03.2012 Сообщений: 110 |
|
29.10.2012, 21:01 [ТС] |
19 |
Так, окей, тогда как сделать, чтобы + ещё 1 цвет добавлялся, ну не только зелёным красил ,а чередовал? Добавлено через 1 минуту
0 |
4982 / 3089 / 456 Регистрация: 10.11.2010 Сообщений: 11,165 Записей в блоге: 10 |
|
29.10.2012, 21:03 |
20 |
Ну задай статическую переменную = 0; Добавлено через 1 минуту
как привязать к своему прямоугольнику новую кисть? Создай структуру/класс в котором опиши прямоугольник и его цвет.
0 |