![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Icaros |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 26.5.2006 Репутация: нет Всего: нет |
Есть некое уравнение y=f(x). Решив его мы получим массив точек (x, y). Как нарисовать такой график с помощью PHP ? Функция ImageLine() не годится, т.к. график получается ломаный, а нужен сглаженный как в Excel'е.
Есть ли готовые классы или решения данной проблемы ? jpgraph не поддерживает рисование подобных графиков (вроде...) |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 3 Всего: 260 |
Icaros, напиши класс, аппроксимирующий данные... скажем, кубическими сплайнами...Круто будет
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
||||
|
||||
| BobiKK |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 655 Регистрация: 1.12.2005 Где: Essen, Deutschlan d Репутация: нет Всего: 16 |
Может быть по сабжу: http://phpclub.ru/detail/article/dynamic_image
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 3 Всего: 260 |
||||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
skyboy, интерполяция тут нафиг не нужна. Строить надо просто дифференцированно.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 3 Всего: 260 |
Mal Hack, зависит от того, что у него "на руках" - функция или только точки. Из "Есть некое уравнение y=f(x). Решив его мы получим массив точек (x, y)" неясно(мне, по крайней мере), что же вопрошающий имеет - только набор точек или всё же может запрограммировать функцию. Впрочем, скорее всего, я просто сам придумываю трудности
|
|||
|
||||
| Icaros |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 26.5.2006 Репутация: нет Всего: нет |
Есть ограниченное число точек (например 10). К сожалению я не могу увеличить число точек, т.к. это вызовет рост времени выполнения скрипта. Скрипт и так долго вычисляет эти 10 значений.
Это сообщение отредактировал(а) Icaros - 3.6.2006, 18:18 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 3 Всего: 260 |
Icaros, что за функция? там параметры ограничены? может, стОит рассчитать разово и хранить результаты рассчёта в базе? Что за функция?
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Если только точки, то надо все равно остальные добирать через интерполяцию.
Icaros, как говорит препод в универе, при уменьшении кол-ва итерационных прохождений, мы теряем характер функции (графика). |
|||
|
||||
| Icaros |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 26.5.2006 Репутация: нет Всего: нет |
Вот что получилось после использования метода интерполяции (см. рисунок). Довольно сильно округлено, особенно переход через нуль. Красные точки - заданные значения, синяя кривая - кривая после сглаживания.
Это сообщение отредактировал(а) Icaros - 8.6.2006, 14:04 Присоединённый файл ( Кол-во скачиваний: 36 )
image.jpg 104,51 Kb |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 3 Всего: 260 |
Icaros, какой метод использовал? Кста, это аппроксимация - при интерполяции график проходит через все заданные точки.
|
|||
|
||||
| Icaros |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 26.5.2006 Репутация: нет Всего: нет |
Использовал "Геометрическое сглаживание В-сплайнами", а посоветованный уважаемым skyboy метод "Интерполяция функции кубическими сплайнами" я не понял.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Графика | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |