русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Класс Shar


Дата добавления: 2015-07-09; просмотров: 438; Нарушение авторских прав


 

class Shar : ISaveLoad

{

 

//номер, скорость,, координаты шара, радиус шара

private int _number,_speed, _x, _y, _vector,_radS;

//поле, хранящие цвет шара

private Color _color;

//положение шара

private double a;

//поле, хранящие информацию о формате текста

private static StringFormat _strF;

//поле, храняшие параметры шрифта

private static Font _f;

//ссылка на область отображения

private Traekt _Space;

//статический конструктор, инициализирующий

//статические поля

static Shar()

{

_strF = new StringFormat();

_strF.Alignment = StringAlignment.Center;

_f = new Font("Arial", 10);

}

//конструктор, применяемый при чтении из файла

public Shar(Traekt NewSpace)

{

_Space = NewSpace;

_x = -1;

_y = -1;

}

//свойство цвета шара, для доступа из вне

public Color colball

{

get { return _color; }

set { _color = value; }

}

//свойство радиуса шара, для доступа из вне

public int radS

{

get { return _radS; }

set { _radS = value; }

}

 

 

//свойство номера шара, для доступа из вне

public int num

{

get { return _number; }

}

//свойство скорости шара, для доступа из вне

public int speed

{

get { return _speed; }

set { _speed = value; }

}

//свойство направления шара, для доступа из вне

public int v

{

get { return _vector; }

set { _vector = value; }

}

//основной конструктор шара

public Shar(Traekt newSpace, int NNumber, int uSpeed, int uVector,int uradS)

{

_Space = newSpace;

_vector = uVector;

_speed = uSpeed;

_radS = uradS;

 

 

_number = NNumber;

a = 90 * (Math.PI / 180);

Show();

}

 

 

//метод отрисовки шара

public void Show()

{

Graphics gr = Graphics.FromImage(_Space.S_picture.Image);

SolidBrush sBrush=new SolidBrush(_color);



Pen sPen = new Pen(Color.Black);

_f = new Font("Arial", 8);

 

 

{

/* //рисование траэктории

gr.DrawEllipse(sPen, _Space.S_x - _radiusOr,

_Space.S_y - _radiusOr,

_radiusOr * 2,

_radiusOr * 2);*/

}

//рисование шара

sBrush.Color = colball;

 

gr.FillEllipse(sBrush, _x, _y, radS * 2, radS * 2);

 

gr.DrawEllipse(sPen, _x, _y, radS * 2, radS * 2);

sBrush.Color = Color.White;

 

gr.DrawString(_number.ToString(), _f, sBrush, _x+radS , _y+radS/2 );

_Space.S_picture.Refresh();

sBrush.Dispose();

sPen.Dispose();

 

 

}

//метод стирания шара

public void Hide()

{

Graphics gr=Graphics.FromImage(_Space.S_picture.Image);

Pen sPen = new Pen(Color.White, 1);

SolidBrush sBr = new SolidBrush(Color.White);

//стирание траэктории

/* {

gr.DrawEllipse(sPen, _Space.S_x - Convert.ToInt32(_radiusOr) - 1,

_Space.S_y - Convert.ToInt32(_radiusOr) - 1,

Convert.ToInt32(_radiusOr) * 2 + 2,

Convert.ToInt32(_radiusOr) * 2 + 2);

}*/

 

//удаление самого шара

gr.FillEllipse(sBr, _x - 1, _y - 1, (radS * 2) + 2, (radS * 2) + 2);

 

sPen.Dispose();

sBr.Dispose();

}

//метод движения шара

public void Move()

{

Hide();

int _radiusOr = _Space.S_picture.Height / 4;

a = a + (speed * _vector*Math.PI/180);

{

_x = (int)Convert.ToInt32(_Space.S_x + _radiusOr * Math.Cos(a) - radS);

_y = (int)Convert.ToInt32(_Space.S_y + _radiusOr * Math.Sin(a) - radS);

 

}

Show();

}

//метод получения номера шара

public override string ToString()

{

 

return "Шар "+_number+";";

}

//запись

//в текстовый файл в начале предыдущий шарик, затем количество, а дальше весь список

public void Save(StreamWriter sw)

{

sw.WriteLine(_number);

sw.WriteLine(_speed);

sw.WriteLine(_x);

sw.WriteLine(_y);

sw.WriteLine(_vector);

sw.WriteLine(_radS);

sw.WriteLine(a);

 

}

//запись

//в двоичный файл

public void Save(BinaryWriter bw)

{

bw.Write(_number);

bw.Write(_speed);

bw.Write(_x);

bw.Write(_y);

bw.Write(_vector);

bw.Write(_radS);

bw.Write(a);

 

}

//чтение

//из текстового файла

public void Load(StreamReader sr)

{

Hide();

_number = Convert.ToInt32(sr.ReadLine());

_speed = Convert.ToInt32(sr.ReadLine());

_x= Convert.ToInt32(sr.ReadLine());

_y = Convert.ToInt32(sr.ReadLine());

_vector = Convert.ToInt32(sr.ReadLine());

_radS = Convert.ToInt32(sr.ReadLine());

a = Convert.ToDouble(sr.ReadLine());

 

Show();

}

//чтение

//из двоичного файла

public void Load(BinaryReader br)

{

Hide();

_number = br.ReadInt32();

_speed = br.ReadInt32();

_x = br.ReadInt32();

_y = br.ReadInt32();

_vector = br.ReadInt32();

_radS = br.ReadInt32();

a = br.ReadDouble();

 

Show();

}

public Boolean Collapse(Shar ball) // Метод проверки на пересечение

{

 

if (Math.Sqrt(Math.Pow(_x - ball._x + radS - ball.radS, 2) + Math.Pow(_y - ball._y + radS - ball.radS, 2)) < (ball._radS + _radS))

return true;

else

return false;

}

}

}

 

 



<== предыдущая лекция | следующая лекция ==>
Введение | Класс Traekt


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.638 сек.