Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 62

Поворот прямоугольника относительно точки

21.11.2015, 21:17. Показов 5389. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся со следующей проблемой. Есть Класс который содержит координаты вершин прямоугольника и галочки внутри него. Надо повернуть эту фигуру относительно любой вершины прямоугольника. Нужна процедуру которая расчитает координаты повёрнутой фигуры. Так же возможно ли вращать этот объект бесконечно?


Рисую фигуру таким способом:

Вызов следующих операторов в кнопке
C#
1
2
pictureBox1.Refresh();
pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Pen p = new Pen(Color.Black); 
 
            g.DrawLine(p, F.x1[0], F.y1[0], F.x1[1], F.y1[1]);
            g.DrawLine(p, F.x1[0], F.y1[0], F.x1[2], F.y1[2]);
            g.DrawLine(p, F.x1[1], F.y1[1], F.x1[3], F.y1[3]);
            g.DrawLine(p, F.x1[2], F.y1[2], F.x1[3], F.y1[3]);
 
            g.DrawLine(p, F.x2[0], F.y2[0], F.x2[1], F.y2[1]);
            g.DrawLine(p, F.x2[1], F.y2[1], F.x2[2], F.y2[2]);
 
        }
Координаты вершин прямоугольника в матрицах х1 и у1, координаты галочки в х2 и у2 соответственно.
C#
1
2
3
4
5
 public float[] x1 = new float[4];
        public float[] y1 = new float[4];
 
        public float[] x2 = new float[3];
        public float[] y2 = new float[3];
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2015, 21:17
Ответы с готовыми решениями:

Поворот прямоугольника относительно левого нижнего угла
Здравствуйте, прямоугольник рисуется так, что его левый нижний угол совпадает с началом декартовой системы координат и нужно его повернуть...

Поворот точки вокруг другой точки
Собственно задачу я перед собой поставил вращать вокруг центра основания треуольник... нашел формулу вот тут (**********), и впихнул ее в...

Поворот отрезка на произвольный угол относительно заданной точки
Доброго всем времени суток. Не как не получается найти метод для поворота отрезка Сам отрезок нарисовал System.Drawing.Pen myPen =...

3
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
21.11.2015, 21:19
Цитата Сообщение от Tandemic Посмотреть сообщение
Так же возможно ли вращать этот объект бесконечно?
нет.

Цитата Сообщение от Tandemic Посмотреть сообщение
Нужна процедуру которая расчитает координаты повёрнутой фигуры.
В чем проблема? Просто поверните на нужный угол все ключевые точки.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
21.11.2015, 21:30
Tandemic,
1) Извращение с float[] - убрать, вместо него - стандартный тип PointF[].
2) Вращение вокруг произвольной точки - реализуйте с помощью класса Matrix:
C#
1
2
3
            Matrix m = new Matrix();
            m.RotateAt(...);
            m.TransformPoints(...);
0
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 62
21.11.2015, 23:48  [ТС]
C#
1
2
3
4
5
6
 PointF[] p = new PointF[4];
 
            for (int i = 0; i < 4; i++)
                p[i] = new PointF(x1[i], y1[i]);
 
            Matrix myMatrix = new Matrix();
Дописал это, а как в майматрикс передать значения p чтобы её повернуть?

Добавлено через 46 минут
Вопрос исчерпан нашёл просто математическую формулу поворота точки относительно другой на заданный угол.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2015, 23:48
Помогаю со студенческими работами здесь

Поворот линии вокруг точки
Здравствуйте, как в PictureBoxX нарисовав вертикально лини, менять ее угол наклона от 90* до 0 спомощью трекбара ? (выглядит как дворники...

Масштабирование PictureBox относительно точки
Здравствуйте! Необходимо масштабировать PictureBox в форме относительно точки где находится курсор мыши. Кто-нибудь сталкивался с такой...

Масштабирование фигуры относительно произвольной точки
Есть фигура в pictureBox, заданная 3д точками, соединёнными линиями. Стоит задача масштабирования относительно произвольной точки. Не могу...

Определить, где находится текущая точка: внутри прямоугольника, снаружи, на границе прямоугольника
Представьте, что у вас на форме есть прямоугольник, границы которого на 10 пикселей отстоят от границ рабочей области формы. Необходимо...

Поворот прямоугольника на угол относительно точки, C#
Здравствуйте, проблема с поворотом прямоугольника. Четкого примера в нете не нашел, прошу помочь вот что написал, рисуется просто...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru