| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > График |
| Автор: Kostik88 1.7.2008, 22:54 |
| Здравствуйте. У меня возникла проблема с графиком, а точнее с его представлением на экране.... у меня даны таблицы данных, по которым я строю график( столбцы x,y ) таблица меняется и соответсвенно таблица тоже.... просто получается что график у меня двигается по оси Х, к примеру Х0=0.....Хn = 9 это в первой таблице, а в следующей уже к примеру, Х0=2.4.....Xn=12.3 Вопрос, как сделать преобразование так чтобы график отображался на всю выводимую область, чтобы было это было связанно с размерами по Х (RECT.right) , за начало координат была точка(X0,Y0) а за кнец (Xn,Yn)? Я использовал фцию LineTo(hDC, int((rect.right)*((S ) /(m1)) +10 ), .........); где m1 - максимум по Х. для наглядности выкладываю фотку. Буду очень признателен за любую помощь! |
| Автор: Kostik88 1.7.2008, 23:31 |
| Забыл сказать S - это значение столбца Х |
| Автор: deniska 2.7.2008, 07:11 |
| чавойто не понял я. то есть исходя из картинки тебе надо чтоб зеленый график рисовался их правого нижнего угла области для рисования? и растягивался на всю эту область? ну то чистая математика выходит... вот и тебя Х0=2.4 ХН=12.3 тогда координата Х для LineTo будет примерно так: Х= (Хтек - Х0)*к, где к - коэффициент для пересчета физической величины в экранную - к =( длина области для рисования )/(ХН-Х0). вроде так, если правильно понял |
| Автор: Kostik88 4.7.2008, 22:48 |
| Спасибо deniska, разобрался... чегото реально затупил=) |