![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 04.01.2010
Сообщений: 2
|
![]()
Всем привет!!! Народ, очень нужна ваша помощь, срочно!!! Очень срочно!!! Ситуация такая: есть код формы, необходимо повернуть Разъеденитель на 90 градусов против часовой стрелки относительно центральной точки Разъединителя. Буду очень благодарен!))))
Прикрепляю архив с проектом) |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 04.01.2010
Сообщений: 2
|
![]()
Код формы:
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); } } } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поворот матрицы на 90 градусов | Альбиша | Помощь студентам | 2 | 26.05.2010 01:19 |
Как расположить вершины многоугольника против часовой стрелки ? | Вадим Буренков | Помощь студентам | 7 | 21.08.2009 10:42 |
Анимирование стрелки... | kentlm | Мультимедиа в Delphi | 2 | 14.05.2009 02:17 |
поворот bitmapa на n градусов | DmT | Общие вопросы C/C++ | 1 | 01.08.2008 02:09 |
Как перевернуть изображение по часовой стрелке | John_chek | Мультимедиа в Delphi | 7 | 09.07.2007 00:24 |