Программирование >>  Элементы языков с и с++ 

1 ... 90 91 92 [ 93 ] 94 95 96 ... 200


private: System::Void button2 Click(System: rObject sender. System:: Even tArgs e)

Color col = gcnew Color (); Pen pen = gcnew Pen (col->Red) ;

чтобы создать графический объект, надо получить ссылку на него, выполнив метод CreateGraphics () компонента (формы) Graphics im = this->CreateGraphics ();

im->DrawLine(pen,20, 10, 300, 100);/*рисует линию между 2-мя

точками (х1,у1)и (х2,у2)*/

вывод графика функции с использованием DrawLine () iin->Clear (col->White); /*закрасить предыдущее графическое

изображение белым цветом*/ float х1,у1,х2,у2; текущие координаты в пикселах в форме х1=0; у1=0; начальные координаты графика функции f(х)

вычисление функции y=f(x) в точках х1,х2,... х2=х1;

while(x2<this->Width SS y2<this->Height) I

x2+=5; следующая точка в пикселах по оси X

y2=fs(x2)* 100; /*эта функция определена в начале модуля

(*100 - для увеличения амплитуды, чтобы было

нагляднее)*/

if(y2<0) у2*=-1; чтобы выводить отрицательные значения ira->DrawLine(pen,xl,yl,x2,y2); вывод линии между 2-мя точками /*точка 2 должна стать точкой 1,

а точкой 2 должна стать следующая текущая точка: */

х1=х2; у1=у2;

continue;



чтобы создать графический объект, надо получить ссылку на него, выполнив метод CreateGraphics() компонента (формы) Graphics im = this->CreateGraphics();

im->DrawLine(pen,20, 10, 300, 100);/*рисует линию между 2-мя

точками (х1,у1)и (х2,у2)*/

вывод графика функции с использованием DrawLineO im->Clear(col->White); /*закрасить предыдущее графическое

изображение белым цветом*/ float х1,у1,х2,у2; текущие координаты в пикселах в форме х1=0; у1=0; начальные координаты графика функции f(х)

вычисление функции y=f(x) в точках х1,х2,... х2=х1;

while(x2<this->Width && y2<this->Height) {

х2+=10; следующая точка в пикселах по оси X y2=ft(х2)*50; /*эта функция определена в начале модуля

(*50 - для увеличения амплитуды, чтобы бьшо

нагляднее)*/

if(у2<0) у2*=-1; чтобы выводить отрицательные значения im->DrawLine(pen,xl,yl,x2,y2); вывод линии между 2-мя точками /*точка 2 должна стать точкой 1,

а точкой 2 должна стать следующая текущая точка: / х1=х2; у1=у2; continue;

private: System::Void button3 Click(System::Object sender. System: :EventArgs e)

this->Close(); завершение приложения



Пояснение

Символ :: - это ТЭК называвмый оператор контекстного разрешения (мы должны сказать компилятору, что будет использован глобальный идентификатор вместо локального, предваряя такой идентификатор символом ::).

Примеры:

и :: identifier - ЭТО просто идентификатор;

3 class-name :: identifier - ЭТО идентификатор, ОТНОСЯЩИЙСЯ К классу;

□ namespace :: identifier- ЭТО идентификатор, ОТНОСЯЩИЙСЯ к пространству имен.

При выводе графика любой функции мы применили метод DrawLine () класса Graphics. Но напрямую сформировать указатель на этот класс, чтобы воспользоваться его членами (в частности, методом DrawLine о), нельзя. Надо сначала получить ссылку на этот графический объект через специальный метод формы, который называется CreateGraphics () .

Если написать оператор

Graphics im = this->CreateGraphics () ;

ТО получим желаемое (метод, по его определению, формирует ссылку на фафический объект).

Теперь через определенную нами ссылку типа Graphics можем добраться до членов класса Graphics (в частности, до необходимого нам метода DrawLine о, который рисуст прямую ЛИНИЮ между двумя точками). Рисование происходит с помощью специального механизма, находящегося в классе Реп (перо, или ручка с пером). Чтобы добраться до этого механизма, надо объявить ссылку на этот класс, а потом через нее добраться до нужного нам члена класса.

Формирование ссылки на класс происходит не само по себе, а с помощью )тилиты gcnew, запускающей специальную программу-конструктор класса, который, в свою очередь, создает в выделенной утилитой памяти экземпляр класса, чтобы с ним можно было работать. Конструктор всегда имеет то же имя. что и класс, для которого он создается, только это обычная функция, выполняющая определенные действия по инициализации членов-данных класса (т. е. придает им некоторые начальные значения).

Конструктор для класса Реп имеет один параметр (цвет), потому что перо должно рисовать линии определенным цветом. Следовательно, прежде чем задавать работу конструктору класса Реп, нам нужно как-то определиться с



1 ... 90 91 92 [ 93 ] 94 95 96 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика