22 Сентября 2024, 14:46:43
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [G]Построение Кривой Линии (есть ответ)
[G]Построение Кривой Линии (есть ответ)
(Прочитано 25070 раз)
  [1] 2
Печать
mixey | ** | Пользователь | Сообщений: 74 | « 10 Марта 2009, 01:15:12 »
[G]Построение Кривой Линии (есть ответ) |
0
Всем Привет! У меня вполне конкретная проблема. Необходимо построить график, который может быть представлен различными кривыми линиями. Скажем есть уравнение описывающее эту кривую, либо нужно динамически (с определенным шагом) выхватывать координаты точек и строить по ним линию. Как это можно реализовать?

Есть конечно вариант использовать Line и указывать координаты, но тогда график сильно зависит от количества шагов, так как представлен отрезками. Другие варианты есть??

Заранее Благодарен! Улыбающийся
« Последнее редактирование: 13 Сентября 2009, 16:15:42 от Sqwer »
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #1 10 Марта 2009, 11:42:49 »
Re: Построение Кривой Линии |
1
Сдесь посмотри, 3d Spline называется, только регистрироваться нужно...

http://quest.ovos.at/
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #2 10 Марта 2009, 12:41:17 »
Re: Построение Кривой Линии |
2
О! Скачал! То, что надо! Веселый Только увы там с ОО работают, а я в нем нифига не знаю  Непонимающий Придется долго разбираться...
Большое Спасибо! Мой проект спасен! А есть хорошие хелпы по ОО в квесте?? И за сколько вообще его реально освоить если общие представления имеются, но ни разу не работал с этим??
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #3 10 Марта 2009, 18:16:49 »
Re: Построение Кривой Линии |
3
На самом деле все оказалось так, как я и предполагал. При помощи For Loop и Lines можно сделать кривые линии. При чем количество итераций влияет на гладкость кривой. Если у кого то будут вопросы, то объясню. Общий вид алгоритма выглядит так:

* Splines.jpg (131.52 Кб, 920x830 - просмотрено 1538 раз.)
« Последнее редактирование: 10 Марта 2009, 23:58:37 от mixey »
cashis | **** | Старожил | Сообщений: 353 | «Ответ #4 10 Марта 2009, 21:00:17 »
Re: Построение Кривой Линии |
4
скажи а где вообще на твоей схеме прописана та формула по которой строится график Непонимающий?
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #5 10 Марта 2009, 23:59:34 »
Re: Построение Кривой Линии |
5
 cashis, смотри исправления в предыдущем посте! Если требуется объяснить подробнее, то объясню!
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #6 14 Марта 2009, 14:01:01 »
Re: Построение Кривой Линии |
6
"
А есть хорошие хелпы по ОО в квесте?? И за сколько вообще его реально освоить если общие представления имеются, но ни разу не работал с этим??
"


c:\Program Files\Quest3D\Quest3D 4.2.2\Examples\OO\
Хороший хелп по оо квест )))

Усвоить можно очень быстро, если есть опыт ОО проектирования.

Это больше всего похоже на OO java     
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #7 15 Марта 2009, 20:52:16 »
Re: Построение Кривой Линии |
7
Const_47, благодарю за ответ!

Но теперь у меня новый вопрос! Как сделать так, чтобы в определенный момент времени (например через равный интервал в 1 секунду) заносить значение координат в какой-то массив, чтобы потом по ним построить график. Решение наверняка простое, но додуматься пока никак не могу. Перечислять все точки, чтобы проверять совпадение момента времени не рационально, да и вообще определенная точка может пролететь и не занестись в массив.
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #8 16 Марта 2009, 18:31:44 »
Re: Построение Кривой Линии |
8
Вот тебе пример построение Еnvelope из координат хранящихся в массиве Table
http://rapidshare.com/files/209911810/BuildEnvelope.rar.html

Так же, можо и заносить координаты в Таble.

Хелп по Луа тут, там функции для работы с Q, так же
и с Тable
http://support.quest3d.com/index.php?title=Lua_Script

Я думаю это будет проще и удобнее, чем построение только из блок-схем

Если ты не знаком с версиями  Q3D до 4.0 то можеш и не знать Q3D -> section -> ClassicLayout. Появится вкладка
АrreyEditor, вместо OO Editor-a.

Отрезок времени? Юзай Тіmer. 
« Последнее редактирование: 16 Марта 2009, 18:34:01 от Const_47 »
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #9 16 Марта 2009, 21:56:02 »
Re: Построение Кривой Линии |
9
Const_47, спасибо большое!  Веселый Очень нужная вещь! Кажется во всем разобрался! Но есть очередной вопрос, а какой функцией в луа можно изменить тип данных, например value поместить в text, ну в общем, чтоб как operator был?
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #10 17 Марта 2009, 04:09:07 »
Re: Построение Кривой Линии |
10
Вот этот простенький тест
http://rapidshare.com/files/210105820/TestConvert.rar.html
показывает, что в QЛуа нет специальной функции для преобразования value в text, в этом просто нет необходимости.



Если я тебя правильно понял, то тебя нужно примерно так, как на твоей  пикче просчитать значение(ху) всех поинтов кривой и сохранить в массиве , что бы потом рисовать с временным интервалом конкретную итарацию?

Или же просчитать конкретную итерацию, пропустить временной интервал, рисовать конкретную итерацию, и так далее...
пока не будет нарисована вся кривая?

Ставь задачу более глобально, так как я не совсем понимаю твои конкретные цели.



 

mixey | ** | Пользователь | Сообщений: 74 | «Ответ #11 17 Марта 2009, 17:00:38 »
Re: Построение Кривой Линии |
11
О! Очередное спасибо! Теперь писать скрипт стало гораздо удобнее!

А теперь описываю общую задачу, которую пытаюсь решить. У меня есть механизм, состоящий из различных звеньев и узловых точек. Движение каждой узловой точки и каждого звена функционально зависит от угла поворота первого звена, которой задается. Движение уже смоделировал. Теперь необходимо нарисовать траекторию движения узловых точек механизма. Поскольку размеры звеньев можно менять, то траектории каждый раз будут разные, но в общем виде конечно будут двигаться по дугам эллипса. Я хотел решить эту задачу путем "снятия" через некий промежуток времени координат точки и строить по этим данным траекторию. Но это на мой взгляд крайне каряво... Какой способ более так скажем математический чтоли... Задать построение линий какой-либо функцией?
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #12 17 Марта 2009, 17:37:21 »
Re: Построение Кривой Линии |
12
Я мало что понял конкретно, больше в общих чертах.

"Задать построение линий какой-либо функцией?"

Просчитать математично идея хорошая.
Предлагаю посмотреть на этот экземпл
C:\Program Files\Quest3D\Quest3D 4.2.2\Examples\Advanced\Lua Script\Pattern Boxes.cgr
Мне кажется что это довольно близко к цели, по крайней мере
есть от чего "плясать"

Покажи плиз конечный результат, это что то не совсем "стандартное", поэтому жутко интересное...
Улыбающийся))
mixey | ** | Пользователь | Сообщений: 74 | «Ответ #13 17 Марта 2009, 17:50:02 »
Re: Построение Кривой Линии |
13
Этот пример уже юзал - близко, но все же не то. Так как там итерации идут как натуральный ряд (1,2,3 и т.д), а у меня время, которое представляется и дробями, поэтому возникают сложности в построении нужной кривой линии.

Ну в общем щас еще поламаю голову. Но у меня щас вообще какая-то странная проблема! Скорее это глюк! Короче после некоторого времени работы в GUI EditBox нельзя вводить с клавы число! Просто не реагирует на клаву и все тут, хотя никаких изменений не было! О_о И никак не убивается эта фигня, приходиться за место старого GUI просто ставить новый и все работает! Что это может быть??? Может структура самого проекта не корректная?
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #14 17 Марта 2009, 18:10:40 »
Re: Построение Кривой Линии |
14
Я сталкивался с подобным, правда в моем случае, это не был
GUI EditBox.

Могу уверенно сказать, что в паблише он уже не "поломается" )))
 
  [1] 2
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [G]Построение Кривой Линии (есть ответ)
Перейти в: