Построение графиков

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
norD
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.06.2006 (Чт) 9:31

Построение графиков

Сообщение norD » 10.06.2006 (Сб) 9:56

Как рисуются графики? Если просто рисовать точкой, то точки в начале графика не перекрывают друг друга и получаются отдельно стоящие точки а не линия (в моем случае такая функция). а в конце уже получается непрерывная линия. Кто, как это делает?
Я буду долго гнать...
/В.Е. Лосипед/

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 10.06.2006 (Сб) 9:57

а соединять точки линиями не пробовал?
Весь мир матрица, а мы в нем потоки байтов!

norD
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.06.2006 (Чт) 9:31

Сообщение norD » 10.06.2006 (Сб) 10:12

Ты знаешь пробовал. Но что-то как то не очень красиво получается. Сам ты какие реальные решения этой проблемы (хотя проблема ли это!?) видишь?
Я буду долго гнать...
/В.Е. Лосипед/

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.06.2006 (Сб) 10:17

Это зависит от решения, как оно видится автору вопроса (ибо их больше одного).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 10.06.2006 (Сб) 10:18

Соединять линиями.
Некрасиво, потому что ломаный график? Сделай непостоянный шаг построения графика, чтобы каждая точка отставала от другой на несколько пикселей.

norD
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.06.2006 (Чт) 9:31

Сообщение norD » 10.06.2006 (Сб) 10:33

For t = 0 To Val(Frm1.TxtTot_t.Text) Step 0,001

DeltaP_r = DeltaP_r_Plus * (Sin(Pi * (t - tau_r_Plus) / tau_r_Minus) / Sin(-Pi * tau_r_Plus / tau_r_Minus)) * Exp(-K_r * t / tau_r_Plus)

XPos = 500 * t / Val(Frm1.TxtTot_t.Text)
YPos = 300 * DeltaP_r / DeltaPr_MAX

Frm2.PSet (XPos + 50, -YPos + 350), 12

Куда уже больше шаг делать чтоб он 2 дня считал этот график! А про несколько пикселей... Так и получается что одна точка от другой не на много отстает.

А вообще народ я же просил написать те решения которые кажутся вам реально возможными в этом случае
Я буду долго гнать...
/В.Е. Лосипед/

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.06.2006 (Сб) 10:37

А мы их и пишем. Но до сих пор непонятно, что именно тебе нужно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 10.06.2006 (Сб) 10:56

Чтобы не считало 2 дня стоит в этой формуле:
norD писал(а):DeltaP_r = DeltaP_r_Plus * (Sin(Pi * (t - tau_r_Plus) / tau_r_Minus) / Sin(-Pi * tau_r_Plus / tau_r_Minus)) * Exp(-K_r * t / tau_r_Plus)

некоторые места не пересчитывать на каждом шаге, а вычислить один раз и сохранить.

DeltaP_r = DeltaP_r_Plus/ Sin(-Pi * tau_r_Plus / tau_r_Minus) *Sin(Pi / tau_r_Minus* (t - tau_r_Plus) ) * Exp(-K_r/ tau_r_Plus * t )

Выделенное синим от t не зависит.

Ну и вопрос, а сколько точек на графике? Почему ты думаешь, что при уменьшении шага графика считать будет долго?
Весь мир матрица, а мы в нем потоки байтов!

kostyanet
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 10.06.2006 (Сб) 10:36

Сообщение kostyanet » 10.06.2006 (Сб) 11:02

Вам нужно применить адаптивное разбиение графика: http://www.rsdn.ru/article/multimedia/Bezier.xml - только с точностью до наоборот.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 13

    TopList  
cron