Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/47: Рейтинг темы: голосов - 47, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 11.06.2009
Сообщений: 20

Поворот на 90 градусов по часовой стрелке

04.01.2010, 17:58. Показов 9506. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!! Народ, очень нужна ваша помощь, срочно!!! Очень срочно!!! Ситуация такая: есть код формы, необходимо повернуть Разъеденитель на 90 градусов против часовой стрелки относительно центральной точки. Буду очень благодарен!))))

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace _4laba
{
    public partial class Form1 : Form
    {
        public Graphics Area;
        public Pen P;
        public Form1()
        {
            InitializeComponent();
            button1.Text = "Выключатель";
            button2.Text = "Трансформатор";
            button3.Text = "Разъединитель с заземляющими ножками";
            Area = this.CreateGraphics();
            P = new Pen(Color.DarkBlue, 1);
        }
 
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            Text = String.Format("X= {0} , Y= {1}", e.X, e.Y);
        }
        class Место
        {
            protected int X, Y, Vvody = 20;
            public Место(int x, int y) { X = x; Y = y; }
            virtual public void type(Graphics gr, Pen P) { }
        }
        class Линия : Место
        {
            int Length;
            public Линия(int x, int y, int length)
                : base(x, y)
            { Length = length; }
            override public void type(Graphics gr, Pen P)
            {
                Point pnt1 = new Point(X, Y);
                Point pnt2 = new Point(X + Length, Y);
                gr.DrawLine(P, pnt1, pnt2);
            }
        }
        class Окружность : Место
        {
            protected int Radius;
            public Окружность(int x, int y, int radius)
                : base(x, y)
            { Radius = radius; }
            override public void type(Graphics gr, Pen P)
            {
                Rectangle rect = new Rectangle(X, Y - Radius, Radius + Radius, Radius + Radius);
                gr.DrawEllipse(P, rect);
            }
        }
        class Прямоугольник : Место
        {
            protected int Xsize, Ysize;
            public Прямоугольник(int x, int y, int xsize, int ysize)
                : base(x, y)
            { Xsize = xsize; Ysize = ysize; }
            override public void type(Graphics gr, Pen P)
            {
                Rectangle rect = new Rectangle(X, Y, Xsize, Ysize);
                gr.DrawRectangle(P, rect);
            }
        }
        class Разъединитель : Место
        {
            int Length;
            public Разъединитель(int x, int y, int length)
                : base(x, y)
            { Length = length; }
            public override void type(Graphics gr, Pen P)
            {
                gr.DrawLine(P, new Point(X, Y - 2 * Length), new Point(X + Length, Y - 2 * Length));
                gr.DrawLine(P, new Point(X + Length / 2, Y - 2 * Length), new Point(X + Length / 2, Y - Length));
                gr.DrawLine(P, new Point(X + Length / 2, Y), new Point(X + Length / 2, Y + Length));
                gr.DrawLine(P, new Point(X + Length / 2, Y), new Point(X, Y - Length + Length/4));
                gr.DrawLine(P, new Point(X + Length / 4, Y + Length), new Point(X + 3 * Length / 4, Y + Length));
                gr.DrawLine(P, new Point(X + Length / 4 + Length / 8, Y + Length + Length / 8), new Point(X + Length / 2 + Length / 8, Y + Length + Length / 8));
                gr.DrawLine(P, new Point(X + Length / 4 + Length / 8 + Length / 16, Y + Length + Length / 4), new Point(X + Length / 2 + Length / 16, Y + Length + Length / 4));
                gr.DrawLine(P, new Point(X + 2 * Length, Y - 2 * Length), new Point(X + 3 * Length, Y - 2 * Length));
                gr.DrawLine(P, new Point(X + 2 * Length + Length / 2, Y - 2 * Length), new Point(X + 2 * Length + Length / 2, Y - Length));
                gr.DrawLine(P, new Point(X + 2 * Length + Length / 2, Y), new Point(X + 2 * Length + Length / 2, Y + Length));
                gr.DrawLine(P, new Point(X + 2 * Length + Length / 2, Y), new Point(X + 2 * Length, Y - Length + Length / 4));
                gr.DrawLine(P, new Point(X + 2 * Length + Length / 4, Y + Length), new Point(X + 2 * Length + 3 * Length / 4, Y + Length));
                gr.DrawLine(P, new Point(X + 2 * Length + Length / 4 + Length / 8, Y + Length + Length / 8), new Point(X + 2 * Length + Length / 2 + Length / 8, Y + Length + Length / 8));
                gr.DrawLine(P, new Point(X + 2 * Length + Length / 4 + Length / 8 + Length / 16, Y + Length + Length / 4), new Point(X + 2 * Length + Length / 2 + Length / 16, Y + Length + Length / 4));
                gr.DrawLine(P, new Point(X + Length, Y - 2*Length), new Point(X + 2*Length-Length/4, Y - 2*Length - Length/2));
            }
        }
        class Выключатель : Прямоугольник
        {
            public Выключатель(int x, int y, int xs, int ys)
                : base(x, y, xs, ys)
            { }
            new public void type(Graphics gr, Pen P)
            {
                Y -= Ysize / 2;
                base.type(gr, P);
                Y += Ysize / 2;
                gr.DrawLine(P, new Point(X - Vvody, Y), new Point(X, Y));
                gr.DrawLine(P, new Point(X + Xsize, Y), new Point(X + Xsize + Vvody, Y));
            }
        }
        class Трансформатор : Окружность
        {
            int Delta;
            public Трансформатор(int x, int y, int radius, int delta)
                : base(x, y, radius)
            { Delta = delta; }
            new public void type(Graphics gr, Pen P)
            {
                base.type(gr, P);
                X += Delta;
                base.type(gr, P);
                X -= Delta;
                gr.DrawLine(P, new Point(X - Vvody, Y), new Point(X, Y));
                gr.DrawLine(P, new Point(X + 2 * Radius + Delta, Y), new Point(X + 2 * Radius + Delta + Vvody, Y));
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Выключатель v = new Выключатель(25, 100, 80, 40);
            v.type(Area, P);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Трансформатор t = new Трансформатор(180, 100, 30, 20);
            t.type(Area, P);
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            Разъединитель r = new Разъединитель(400, 100, 30);
            r.type(Area, P);
        }
 
        private void Form1_MouseMove_1(object sender, MouseEventArgs e)
        {
            Text = String.Format("X= {0} , Y= {1}", e.X, e.Y);
        }
    }
}
Добавлено через 1 минуту
Извините, что описался в заголовке темы, необходимо повернуть ПРОТИВ часовой стрелки на 90 градусов))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2010, 17:58
Ответы с готовыми решениями:

Поворот двухмерного массива на 90 градусов по часовой стрелке
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Матрицу повернуть на 90 градусов по часовой стрелке на C#
Содержимое квадратной матрицы A(n,n) повернуть на 90 градусов по часовой стрелке, считая центром поворота центр симметрии матрицы.

Развернуть матрицу на 90 градусов по часовой стрелке
Создать матрицу, заполнить матрицу случайными числами. Развернуть матрицу на 90 градусов по часовой стрелке. Код есть, но че-то я...

2
101 / 101 / 19
Регистрация: 29.12.2009
Сообщений: 204
04.01.2010, 18:41
прикрепи архив с проектом. разбираться, что есть на форме, и как взаимодействует, мало кому интересно
0
1 / 1 / 0
Регистрация: 11.06.2009
Сообщений: 20
04.01.2010, 18:50  [ТС]
Вот архив с прогой)
Вложения
Тип файла: rar 4laba.rar (41.1 Кб, 74 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.01.2010, 18:50
Помогаю со студенческими работами здесь

Повернуть массив по часовой стрелке на 90 градусов
Дан массив N × M. Требуется повернуть его по часовой стрелке на 90 градусов. Формат входного файла На первой строке даны...

Преобразовать квадратную матрицу, осуществив поворот элементов вокруг ее центра на 90 градусов против часовой стрелки
Прошу подскажите решение данной задачи, заранее большое спасибо

Повернуть график ZedGraph на 90 градусов по часовой стрелке
Доброго времени суток всем! Знает ли кто-нибудь, как повернуть график ZedGraph на 90 градусов по часовой стрелке(т.е. ось Y должна...

Поворот матрицы на 90 градусов по часовой стрелке
Непонятно как не транспонировать, а именно повернуть на 90 Дан массив N × M. Требуется повернуть его по часовой стрелке на 90...

Поворот матрицы на 90 градусов по часовой стрелке
import numpy as np n = int(input('Количество строк = ')) m = int(input('Количество столбцов = ')) a = np.zeros((n, m), dtype=np.int_)...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru