![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
betal |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
Доброе время суток день всем. Тут у меня програма для вывода на экран графика функции sin(x)*sin(x)-x; По идее должна получаться что-то похожее на синусоиду. А выходить прямая. В чем у меня ошибка ???
Мне кажется что ошибка именно в округлении. Ктонибудь обьясните в чем ?!?! --------------------
101100010100001101100001110100101111011легкие деньги |
||||
|
|||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
NightXXX |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 18.11.2006 Где: Россия Репутация: нет Всего: нет |
Ты зачем так извращаешься, не приводи типы, он у тебя просто округляет каряво :
Вот так вот поэксперементируй
У тебя чиселко маленькое получается при вычисление ее с размером экрана не сравнить и получается линия, а если использовать коээфициент, то увидешь как изменяется график!! Если работаешь с вещественным типом, ниогда не приводи его к (int) таким образом это не привильно в вычислениях! |
||||
|
|||||
betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
Мне кажется так правильнее. Ведь дробных координат не бывает. Считай что у меня *1 ![]() Добавлено через 1 минуту и 24 секунды Ага щас попробую..... --------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
не не вариант. То что оно неправильно его переводит это я уже понял. Но домножение функции на число не помогло.
![]() --------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
прально кажется, только вот
можно смело записать как
т.к синус всегда меньше 1, а преобразование к int в результате будет давать 0 тогда считай что ты ничего построить не сможешь ![]() |
||||
|
|||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
--------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
betal, мысль у vinter'а правильная, попробуй построй таким же образом график для
посмотри, что получится, может наведет на мысли ![]() |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
betal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 26.12.2006 Репутация: нет Всего: 1 |
Ок
А у меня он не правильный ???? --------------------
101100010100001101100001110100101111011легкие деньги |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
betal, все дело в масштабе, то что ты непонятные преобразование туда-обратно проводишь, думаю особо не влияет на работу.
Проблема в том, что это - sin(x)*sin(x) даст отклонение графика от прямой линии максимум в 1 пиксель, да и то крайне редко, по этому, как говорилось раньше, необходимо ввести масштабирование. Что-то в этом духе:
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
зайди в поиск в алгоритмах набери "Преобразование координат", там в принципе неплохо решена проблема масштабирования. Хотя если это не принципиально то я бы заюзал готовый компонент для отрисовки графиков.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |