Консультант Витте
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
1

Афинные преобразования для полигона

05.10.2015, 21:45. Показов 2454. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер,необходимо по точкам построить полигон,а потом реализовать перемещение,поворот и масштаб для него.
Может кто то делал подобное?Или есть примеры чего либо?
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2015, 21:45
Ответы с готовыми решениями:

Афинные преобразования 2D
Здравствуйте! Нужно выполнить задание для лабораторной работы, но я ничего не понимаю в С# т.к....

2д афинные преобразования
Нужна помощь с этой фигурой. Ее нужно растянуть вдоль оси Y и повернуть на 60 градусов относительно...

Афинные преобразования. Canvas
procedure TForm1.Button1Click(Sender: TObject); var x,y:integer; begin x:=Form1.ClientWidth div...

Афинные преобразования куба
Реализовать с кубом все виды преобразований в пространстве: перенос вдоль координатных осей,...

1
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.10.2015, 01:35 2
Лучший ответ Сообщение было отмечено DmitryM5 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        //Массив точек для многоугольника
        Point[] points = new Point[3] { new Point(25, 25), new Point(100, 100), new Point(80, 160) };
        Paint += (s, e) => {
            e.Graphics.DrawPolygon(Pens.Red, points);
            using (Matrix m = new Matrix()) {//Матрица аффинных преобразований
                m.RotateAt(30, points[1]);//Поворот на 30° вокруг второй точки из массива
                m.TransformPoints(points);//Применение матрицы преобразований к массиву точек 
                e.Graphics.DrawPolygon(Pens.Blue, points);
                m.Reset();
                m.Translate(30, 30);//Перенос на 30 пикселов по-горизонтали и вертикали
                m.TransformPoints(points);//Применение матрицы преобразований к массиву точек 
                e.Graphics.DrawPolygon(Pens.Green, points);
                m.Reset();
                m.Scale(0.5f, 0.5f);//Уменьшение в два раза
                m.TransformPoints(points);//Применение матрицы преобразований к массиву точек 
                e.Graphics.DrawPolygon(Pens.Orange, points);
            }
        };
    }
}
0
06.10.2015, 01:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2015, 01:35
Помогаю со студенческими работами здесь

Афинные преобразования. Косячит поворот
Помогите разобраться пожалуйста в чем дело: Есть задание нарисовать полукруг и повернуть его,...

Афинные преобразования уравнения поверхости
В общем вопрос такого характера. Есть уравнения поверхностей. Конкретно - квадрики...

Двумерные афинные преобразования. Поворот на 45 градусов
Здравствуйте всем. Мне нужна небольшая помощь. Необходимо задать матрицу поворота и процедуру...

Афинные преобразования: перенос, масштабирование, поворот треугольника
Преобразования: перенос, масштабирование, поворот треугольника, помогите кто может.

Афинные пробразования
В общем мне нужно нарисовать звёздочку 3d , которую можно вертеть и всё такое. Без использования...

Программа для преобразования
Прошу помощи с написанием такой программы: Составить программу для преобразования двоичного 16-ти...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru