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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2014, 20:29   #1
egrozavr
Пользователь
 
Регистрация: 26.03.2014
Сообщений: 17
По умолчанию Масштабирование графика с помощью события trackbar

Как видно ниже, масштаб моего графика регулируется вручную через значение "Scale", вводимое в поле textBox.
А как сделать это же через событие trackbar? ( хочется чтобы значение вводилось каждый раз не от руки, а регулировалось через ползунок трекбара). Пробовал сам, но зашёл в тупик
Код:
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 MathGraph();
             }
 
    private: void MathGraph()
    {
        const double Pi = 3.14159265;
        double shag = 0.1;
        double scale = Convert::ToDouble(textBox1->Text);
        
        
        //размеры поля
        int fillHeight = 100;
        int fillWidth = 500;
        int otstup = 5;
 
        //ось Х
        Point x1 (0,55);
        Point x2 (500,55);
        Point x3 (0,155);
        Point x4 (500,155);
        //ось Y
        Point y1 (100,10);
        Point y2 (100,90);
        Point y3 (100,120);
        Point y4 (100,200);
 
        //описание текстовой строки
        String^ drawString = "Pi";
        System::Drawing::Font^ drawFont = gcnew System::Drawing::Font( "Arial",7 );
        SolidBrush^ drawBrush = gcnew SolidBrush( Color::Black );
        PointF drawPoint = PointF(200,200);
 
        //описание линий                                            
        Graphics^ e = this->CreateGraphics();
        SolidBrush^ brush = gcnew SolidBrush(Color::White);
        Pen^ blackPen = gcnew Pen(Color::Green,1.0f);
 
        //рисуем поля
        e-> FillRectangle(brush, otstup,fillHeight,fillWidth,fillHeight);
        e-> FillRectangle(brush, otstup, 2*otstup + fillHeight,fillWidth,fillHeight);
        //текст под графиком
        e-> DrawString( drawString, drawFont, drawBrush, drawPoint );
        //оси
        e-> DrawLine (blackPen, x1, x2);
        e-> DrawLine (blackPen, x3, x4);
        e-> DrawLine (blackPen, y1, y2);
        e-> DrawLine (blackPen, y3, y4);
 
        int n = Convert::ToInt32(4*Pi/shag);
 
        array <Point, 1>^ pointSin = gcnew array <Point, 1>(n);
        array <Point, 1>^ pointCos = gcnew array <Point, 1>(n);
    
        int p = 0;
 
        for (double i = 0; i < 4*Pi; i+= shag)
        {
            pointSin[p] = Point (Convert::ToInt32(i*scale + otstup), Convert::ToInt32(sin(i)*scale + fillHeight/2 + otstup));
            pointCos[p] = Point (Convert::ToInt32(i*scale + otstup), Convert::ToInt32(cos(i)*scale + fillHeight/2 + 2*otstup + fillHeight));
            p++;
        }
            
        Pen^ pen = gcnew Pen(Color::Black);
        Pen^ pen1 = gcnew Pen(Color::Blue);
        e-> DrawCurve(pen, pointSin);
        e-> DrawCurve(pen1, pointCos);
 
 
    }
    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
                
             }
};
}
egrozavr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TrackBar и Масштабирование графика gamezeldol Помощь студентам 0 03.06.2012 00:30
Добавить события в компонент TrackBar aleks.halk Помощь студентам 3 27.10.2010 18:25
Масштабирование рисунка в Word c помощью VBA Vavo Microsoft Office Word 4 13.12.2009 19:52
Помогите измененить размер картинки с помощью TrackBar oblachko Мультимедиа в Delphi 6 30.06.2009 02:25
как прокрутить ListBox с помощью TrackBar Dr.Badnezz Общие вопросы Delphi 4 06.01.2009 14:54