|
|
|
| есть точки
X 50 | 60 | 90
Y 240 | 280 | 120
как провести кривую через ети точки ?
(хочу построить плавный график) | |
|
|
|
|
|
|
|
для: toproot
(05.09.2010 в 14:52)
| | imageline (resource image, int x1, int y1, int x2, int y2, int col) | |
|
|
|
|
|
|
|
для: sim5
(05.09.2010 в 15:07)
| | но ето будет прямая через 2 точки. а нужно кривую через 3 точки. | |
|
|
|
|
|
|
|
для: toproot
(05.09.2010 в 15:22)
| | Любую кривую можно апроксимировать. Другим, типа свободных кривых, GD не располагает. Можете использовать дуги, сопрягая их, но это очень сложно будет.
Либо выводите координаты работы функций, расчитывающие эти графики. | |
|
|
|
|
|
|
|
для: toproot
(05.09.2010 в 15:22)
| | вот пример интерполяции параболой второго порядка для трех точек.
y= y1*((x-x2)*(x-x3))/((x1-x2)*(x1-x3))
+ y2*((x-x1)*(x-x3))/((x2-x1)*(x2-x3))
+ y3*((x-x1)*(x-x2))/((x3-x1)*(x3-x2))
|
А если нужно произвольное количество - в поиск на тему "сплайны"
Вот, к примеру. | |
|
|
|
|
|
|
|
для: toproot
(05.09.2010 в 14:52)
| | Если всё-таки очень надо, то ищите математические алгоритмы интерполяции и реализуйте. На выходе получите функцию, а уж её график построить нетрудно. | |
|
|
|