Говорю сразу, что объяснять я не умею, так что все комменты к проге будут в стиле "моя твоя не понимать".
Вообщем задание такое: Вычисление определённого интеграла методом Симпсона. Я написал уже почти всю прогу, но не получается следующая вещь. Когда строю график ф-ии, то помимо самого графика нужно ещё построить оси координат и задать на них единичные отрезки, естественно это всё делается в маштабе, т.к. в вычислениях могут быть очень большие/маленькие значения, а пиксели ограничены)) Ну сами коэффициенты масштабирования я получил и на их основе строится график ф-ии. Вся фишка в том, что оси должны подгоняться под график, а не график под оси.(поясню) График как строился, так и будет строится в данной области, а вот оси координат должны будут двигаться и подстраиваться под наш график(конечно образно).
Вот часть кода, где строим сам график ф-ии:
Цитата
cof:=600/(abs(max-min)); //коэф для y
cof2:=600/(abs(verx-niz)); //коэф для x
x:=niz;
integral(a1,a2,a3,a4,a5,a6,b1,b2,b3,h,x,otv1);
canvas.MoveTo(round(x*cof2)+abs(round(niz*cof2)),600-abs(round(otv1*cof)));//abs(round(niz*cof2)) что бы по X график в минус не уходил
for i:=1 to n do begin
integral(a1,a2,a3,a4,a5,a6,b1,b2,b3,h,x,otv);//процедура для вычисления самого интеграла(выходной параметр "otv")
x:=x+h;
form3.Visible:=true;
canvas.Pen.color:=clblack;
canvas.pen.Width:=1;
canvas.Pen.style:=pssolid;
canvas.lineto(round((x+h)*cof2)+abs(round(niz*cof2)),600-abs(round(otv*cof)));
end;
cof2:=600/(abs(verx-niz)); //коэф для x
x:=niz;
integral(a1,a2,a3,a4,a5,a6,b1,b2,b3,h,x,otv1);
canvas.MoveTo(round(x*cof2)+abs(round(niz*cof2)),600-abs(round(otv1*cof)));//abs(round(niz*cof2)) что бы по X график в минус не уходил
for i:=1 to n do begin
integral(a1,a2,a3,a4,a5,a6,b1,b2,b3,h,x,otv);//процедура для вычисления самого интеграла(выходной параметр "otv")
x:=x+h;
form3.Visible:=true;
canvas.Pen.color:=clblack;
canvas.pen.Width:=1;
canvas.Pen.style:=pssolid;
canvas.lineto(round((x+h)*cof2)+abs(round(niz*cof2)),600-abs(round(otv*cof)));
end;
Немного поясню переменные:
verx и niz - Верхний и нижний пределы интегрирования.
max и min - Максимальное и минимальное значение ф-ии в заданных пределах интегрирования
h - шаг интегрирования(метод Симпсона)
n - кол-во точек интегрирования
Если кто-то что-то понял из всего этого бреда и знает как строить оси, то помогите плз))
P.S. как положено 2 пробела отступов почему то не отображаются на данном форуме