Помогите построить график на С++
Нужно построить график функции, не могу придумать нормальное масштабирование.
Если поставить в соответствие максимальное значение и размер рабочей области, функция строится нормально, не выходит за рамки области.
НО мне нужно чтоб минимум функции был в самом низу окна, а максимум вверху, просто у меня график похож на гиперболу, очень близок к прямой, тоесть нужно его растянуть на всё окно, чтоб было видно что это кривая а не прямая
// dz.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include
#include
#include
#include
#include
int main(void) {
float st,x,a,b,VP,VM,F,m,eps,n;
HWND hWnd = FindWindowA("ConsoleWindowClass", NULL);
HDC hdc = GetDC(hWnd);
SetROP2(hdc, R2_MERGENOTPEN);
getch();
MoveToEx(hdc, 0, 450, 0);
LineTo(hdc, 600, 450);
MoveToEx(hdc, 11, 450, 0);
LineTo(hdc, 11, 100);
a=1;
b=2;
eps=0.001;
n=2*(b-a)/eps;
st=1/n;
x=a;
VP=1/a+log(a)*log(a); //Vremennaya peremennaya
VM=1/a+log(a)*log(a); // perem dlyz masshtaba
for(; x <= b; )
{
F=1/x+log(x)*log(x);
if (VP>F) {VP=F; m=x;}
if (VM
пользуюсь Графической библиотекой винды, да и так понятно что нужно найти наименьшее и наибольшее значение, я знаю как по максимальному масштабировать, но у меня максимальное значение 1, а минимальное 0,82, и тогда получается почти прямая линия в самом верху консоли
if (VM
if (VM
if (VM
На словах всё так просто, вы пример напишите !!!
{
F=1/x+log(x)*log(x);
if (VP>F) {VP=F; m=x;}
if (VM>F) VM=F;
x=x+st;
}
x=a;
for(float i=0 ; x <= b;i=i+st )
{
F=1/x+log(x)*log(x);
SetPixel(hdc, 21+1000*i/b, 450-200*F/VM, RGB(0, 255, 0));
x=x+st;
}
Вот пример моего масштабирования, ставлю максимальному значению масива в соответствие 200 точек консольного окна, тоесть максимальная точка будет на высоте 200 точек от оси абсцис