IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> графика в Си, масштабирование
сообщение
Сообщение #1


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Помогите пожалуйста разобраться с функцией. Она строит график Sin(x). Функция f1 возвращает значение Sin(x), а вот эта вот функция grafik собственное его рисует. Проблема возникла при маленьких и отрицательных диапозонах. Напрмер если задать x1 и x2 отрицательные, или просто чтоб x2 был больше x1 на 1, то функция ничего уже не рисует вообще. Хотя если ввести от 0 до 1, то рисуется в увеличенном масштабе.
Я пыталась достичь нужного результата, меняя значения x0 (начало координат) и w (ширина области графика) в зависимости от x1 и x2, но ничего все-равно не выходит! Может ,по-другому как-то это сделать?
(l и b это левый нижний угол области графика, а h это высота области графика, mx и my - масштаб по осям X и Y).

void grafik(float x1, float x2)
{
float y1,y2;
float x,y;
float dx=0.0001;
int l;
int b;
int w,h;
float mx,my;
int x0,y0;

if ((x1<x2) & (x1>=0))
{x0=0; l=50; b=480; w=700; h=478;}

else if ((x1<x2) & (x1<0))
{x0=100; l=50; b=480; w=1800; h=478;}

y1 = f1(x1);
y2 = f1(x2);
x = x1+dx;
do {
y=f1(x);
if (y<y1) y1=y;
if (y>y2) y2=y;
x+=dx;
} while (x<=x2);

my = h/fabs(y2-y1);
mx = w/fabs(x2-x1);
y0=b-abs(y1*my);

x=x1;
do {y=f1(x);
putpixel(x0+x*mx,y0-y*my,15);
x+=dx;
} while (x<=x2);
}


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name