Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 56
1

Построение Графиков.

14.05.2011, 23:34. Показов 1756. Ответов 1
Метки нет (Все метки)

Затруднения возникла с кодом где строю графики... и я построил деления для оси абсцисс (Х), но не знаю как подобное сделать для оси ординат.. расскажите пожалуйста. внизу сама программка..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 
    double calcMax =  100;
    double calcMin =  -30;
    double tMax    =   10;
    double tMin    =   -1;
 
 
    double tScale=Image1->Width /(tMax - tMin);
    double calcScale = Image1->Height / (calcMax - calcMin);
    TCanvas * canvas;
    canvas=Image1->Canvas;
    canvas->Brush->Color=clWhite;
    canvas->FillRect(Rect(0,0,(tMax-tMin)*tScale,(calcMax-calcMin)
    *calcScale));
 
// Вот тут прошу помощи!
 
//Рисую график Y  =  2^(sqrt(x+2) -  2^(sqrt(x+1) => pow(2,(sqrt(tMin+2)) -  pow(2,(sqrt(tMin+1))) 
// ТАК? проверьте
 
    canvas->Pen->Width=3; //  толщина линии
    Image1->Canvas->Pen->Color=clBlue; // цвет линии
    canvas->MoveTo(0,(calcMax - pow(2,(sqrt(tMin+2)) -  pow(2,(sqrt(tMin+1)))))*calcScale); 
// вот тут я  запутался
    for (double t=tMin ; t< tMax; t+=1 / tScale)
    canvas->LineTo ((t - tMin) * tScale,
    (calcMax - pow(2,(sqrt(t+2)) + pow(2,(sqrt(t+1))))) * calcScale);
 
 
 
//Рисую график Y  =  12+2^(sqrt(x-1) =>  pow(14,(sqrt(t-1)))  // ТАК? проверьте
 
    canvas->Pen->Width=3;// толщина линии
    Image1->Canvas->Pen->Color=clRed; // цвет линии
    canvas->MoveTo((1 - tMin) * tScale,(calcMax-pow(14,(sqrt(1-1))))*calcScale);
// вот тут я  запутался
    for (double t=1; t< tMax; t+=1 / tScale)
    canvas->LineTo ((t - tMin) * tScale,(calcMax - pow(14,(sqrt(t-1)))) * calcScale);
 
 
 
 
 
//Рисую оси координат
 
   canvas->Pen->Width=1;  // толщина линии
   canvas->Pen->Color=clBlack; // цвет линии
 
   // Ось икс
   Image1->Canvas->MoveTo(0,(calcMax - 0)* calcScale);
   Image1->Canvas->LineTo(Image1->Width,(calcMax)* calcScale);
   // Ось игрик
   Image1->Canvas->MoveTo(Image1->Width/2,Image1->Height);
   Image1->Canvas->LineTo(Image1->Width/2,0);
 
//Рисуем стрелочки у осей координат
 
 
   //стрелочка у игрика
 
    Image1->Canvas->MoveTo((Image1->Width/2)-5,5);
    Image1->Canvas->LineTo( Image1->Width/2,0 );
    Image1->Canvas->LineTo((Image1->Width/2)+6,6);
 
   //стрелочка у икса
 
    Image1->Canvas->MoveTo(Image1->Width-5,(calcMax)* calcScale-5);
    Image1->Canvas->LineTo(Image1->Width,(calcMax)* calcScale);
    Image1->Canvas->LineTo(Image1->Width-6,(calcMax)* calcScale+6);
 
// деления на оси икс! и расскажите плз как построить подобное для оси игрик? (но это не так важно)
    for (double t=tMin; t<tMax ; t++)
   {
    Image1->Canvas->MoveTo((t-tMin)*tScale,calcMax * calcScale);
    Image1->Canvas->LineTo((t-tMin)*tScale,(calcMax * calcScale)+10);
 
    if(t!=0)
      {Image1->Canvas->TextOutA((t-tMin)*tScale,(calcMax * calcScale)+20,float(t+0));}
   }
 /*
// подпись графиков
   Image1->Canvas->TextOutA(X,Height/2,"");
   Image1->Canvas->TextOutA(X,(Height/2)-110,"");  */
 
}
//---------------------------------------------------------------------------
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вложения
Тип файла: rar 6.rar (343.0 Кб, 51 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2011, 23:34
Ответы с готовыми решениями:

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

Построение графиков
Добрый день, мне сказали написать программу, которая строила бы график по точкам. После...

Построение графиков
Помогите пожалуйста построить график функции при помощи компонента Image

Построение графиков
Всем привет! Есть необходимость построить несколько графиков по точкам так, чтобы у них была...

1
442 / 297 / 63
Регистрация: 12.10.2009
Сообщений: 1,160
15.05.2011, 04:38 2
используй компонент TChart
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2011, 04:38

Построение графиков
Здравствуйте. Подскажите как сделать так , чтобы компонент TChart строил график по данным из...

Построение графиков f1book
Подскажите как реализовать следующую задачу. Имеется заполненная таблица excel. Необходимо...

Построение графиков функций
помогите пожалуйста, у меня есть программа построения графиков функций, но мне нужно ее переделать...

Построение графиков в Chart
Добрый день. Я программирую на Builder C++. Мне по Com-порту приходят пакеты 2-х типов. Первый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.