Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2010, 19:29   #1
Lindemann
Новичок
Джуниор
 
Регистрация: 04.01.2010
Сообщений: 2
По умолчанию Поворот на 90 градусов против часовой стрелки

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

Прикрепляю архив с проектом)
Вложения
Тип файла: rar 4laba.rar (41.1 Кб, 8 просмотров)
Lindemann вне форума Ответить с цитированием
Старый 04.01.2010, 19:30   #2
Lindemann
Новичок
Джуниор
 
Регистрация: 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);
}
}
}
Lindemann вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот матрицы на 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