Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

3D график по x,y,z   Найти похожие ветки 

 
shkeeper   (2004-04-22 22:33) [0]

Очень нужно! Есть ли какой нибудь спрособ "малой кровью" построить 3Д график (по x,y,z)?
Вариант строить в Excel слишком банален и неудобен. Может кто подскажет где что мона взять?


 
shkeeper   (2004-04-22 22:33) [0]

Очень нужно! Есть ли какой нибудь спрособ "малой кровью" построить 3Д график (по x,y,z)?
Вариант строить в Excel слишком банален и неудобен. Может кто подскажет где что мона взять?


 
shkeeper   (2004-04-22 23:15) [1]

ну и... что никто не сталкивался... это ужасно..


 
shkeeper   (2004-04-22 23:15) [1]

ну и... что никто не сталкивался... это ужасно..


 
Yegorchic ©   (2004-04-22 23:19) [2]

Посмотри программу в кладовке...
как называется не помню... вроде "Математика 0.5"...
там есть построение 3D графика...


 
Yegorchic ©   (2004-04-22 23:19) [2]

Посмотри программу в кладовке...
как называется не помню... вроде "Математика 0.5"...
там есть построение 3D графика...


 
SergLight ©   (2004-04-23 10:26) [3]

TChart


 
SergLight ©   (2004-04-23 10:26) [3]

TChart


 
Курдль ©   (2004-04-23 11:30) [4]


> Очень нужно! Есть ли какой нибудь спрособ "малой кровью"
> построить 3Д график (по x,y,z)?

А что Вы называете "малой кровью"? Такие проги писать - одно сплошное эстетическое удовольствие (жаль, что их редко заказывают). Все проще пареной репы - берете TImage и на его Canvas-е строите все, что заблагорассудится!


 
Курдль ©   (2004-04-23 11:30) [4]


> Очень нужно! Есть ли какой нибудь спрособ "малой кровью"
> построить 3Д график (по x,y,z)?

А что Вы называете "малой кровью"? Такие проги писать - одно сплошное эстетическое удовольствие (жаль, что их редко заказывают). Все проще пареной репы - берете TImage и на его Canvas-е строите все, что заблагорассудится!


 
Algol   (2004-04-23 12:09) [5]


> одно сплошное эстетическое удовольствие


Я б так не сказал. Создание интерактивных графиков произвольного типа, с шаблонами, с поддержкой внедрения, да еще и 3D  - задача не тривиальная, и довольно сложная.


 
Algol   (2004-04-23 12:09) [5]


> одно сплошное эстетическое удовольствие


Я б так не сказал. Создание интерактивных графиков произвольного типа, с шаблонами, с поддержкой внедрения, да еще и 3D  - задача не тривиальная, и довольно сложная.


 
Курдль ©   (2004-04-23 12:12) [6]


> Я б так не сказал. Создание интерактивных графиков произвольного
> типа, с шаблонами, с поддержкой внедрения, да еще и 3D  
> - задача не тривиальная, и довольно сложная.


Но для меня приятнее, чем создание каких-нить бухгалтерских интерактивных отчетов произвольного типа, с шаблонами, с поддержкой внедрения :)


 
Курдль ©   (2004-04-23 12:12) [6]


> Я б так не сказал. Создание интерактивных графиков произвольного
> типа, с шаблонами, с поддержкой внедрения, да еще и 3D  
> - задача не тривиальная, и довольно сложная.


Но для меня приятнее, чем создание каких-нить бухгалтерских интерактивных отчетов произвольного типа, с шаблонами, с поддержкой внедрения :)


 
shkeeper   (2004-04-23 15:20) [7]

После того как я обрал весь Инет в поисках удобного и НОРМАЛЬНОГО компонента я зациклился на TChart Pro 6.0. Но он выдает все время ошибки, избавится от них никак не могу. А посему пришел к выводу, что еще никто такого компонента не придумал, а те что есть не могут построить диаграмму по 3-м осям, если записей например больше 5000.
Так что нечего тут говорить, что это просто... было бы просто уже б кто нибудь подсказал что-то конкретоное, а все грамотные, пока по делу не начнем говорить... :(


 
shkeeper   (2004-04-23 15:20) [7]

После того как я обрал весь Инет в поисках удобного и НОРМАЛЬНОГО компонента я зациклился на TChart Pro 6.0. Но он выдает все время ошибки, избавится от них никак не могу. А посему пришел к выводу, что еще никто такого компонента не придумал, а те что есть не могут построить диаграмму по 3-м осям, если записей например больше 5000.
Так что нечего тут говорить, что это просто... было бы просто уже б кто нибудь подсказал что-то конкретоное, а все грамотные, пока по делу не начнем говорить... :(


 
Курдль ©   (2004-04-23 15:26) [8]


> а все грамотные, пока по делу не начнем говорить... :(

Я Вам абсолютно грамотно подсказал, как грамотно пстроить диаграмму по 3-м осям! Надо брать и строить, а не компоненты искать!
Если медленно работает - переходите на ассемблер!
Как сделаете лучший и менее глючный, чем есть - напишите мне - я куплю за большие деньги!


 
Курдль ©   (2004-04-23 15:26) [8]


> а все грамотные, пока по делу не начнем говорить... :(

Я Вам абсолютно грамотно подсказал, как грамотно пстроить диаграмму по 3-м осям! Надо брать и строить, а не компоненты искать!
Если медленно работает - переходите на ассемблер!
Как сделаете лучший и менее глючный, чем есть - напишите мне - я куплю за большие деньги!


 
WebErr ©   (2004-04-23 16:41) [9]

Всё оч. просто:
Дано: исходный вектор P = (x, y, z), найти простейший вариант отображения на плоскость экрана.
Решение:
Пусть некий объект расположен неподалёку от точки O = (0, 0, 0).
(Иначе делаем перенос координат!)
Пусть "камера" направлена в эту точку и имеет сферические координаты с углами (a, b).
Поворачиваем P, используя матрицу поворота T(a, b) =

||     cos(a)       -sin(a)       0    ||
|| sin(a)*cos(b) cos(a)*cos(b) -sin(b) ||
|| sin(a)*sin(b) cos(a)*sin(b)  cos(b) ||

Q = T*P.
Q = (X, Y, Z).
Итак мы отобразили (непроективно - это посложнее!) P на плоскость экрана.
Теперь можно сделать косметическое преобразование:

xs = X*k + x0
ys = Y*k + y0

И всё! :))))


 
WebErr ©   (2004-04-23 16:41) [9]

Всё оч. просто:
Дано: исходный вектор P = (x, y, z), найти простейший вариант отображения на плоскость экрана.
Решение:
Пусть некий объект расположен неподалёку от точки O = (0, 0, 0).
(Иначе делаем перенос координат!)
Пусть "камера" направлена в эту точку и имеет сферические координаты с углами (a, b).
Поворачиваем P, используя матрицу поворота T(a, b) =

||     cos(a)       -sin(a)       0    ||
|| sin(a)*cos(b) cos(a)*cos(b) -sin(b) ||
|| sin(a)*sin(b) cos(a)*sin(b)  cos(b) ||

Q = T*P.
Q = (X, Y, Z).
Итак мы отобразили (непроективно - это посложнее!) P на плоскость экрана.
Теперь можно сделать косметическое преобразование:

xs = X*k + x0
ys = Y*k + y0

И всё! :))))


 
WebErr ©   (2004-04-23 17:03) [10]

Z координату мы используем для Z-буффера, если надо.
А при проективном преобразовании нужно знать ещё и 3-ю сферическую координату "камеры" r, т.е. C = (r, a, b) в сферических координатах.
Также надо знать длину до фокуса камеры = d.
Получаем преобразование R = R(Q), при некоем p = r/(r-Z).

xr = X*p
yr = Y*p
zr = r-d-Z

R = (xr, yr, zr).
Т.е. проекция применяется после поворота и перед "косметическим" масштабированием. :))))
Литература: "Программирование компьютерной графики" Виктора Порева.


 
WebErr ©   (2004-04-23 17:03) [10]

Z координату мы используем для Z-буффера, если надо.
А при проективном преобразовании нужно знать ещё и 3-ю сферическую координату "камеры" r, т.е. C = (r, a, b) в сферических координатах.
Также надо знать длину до фокуса камеры = d.
Получаем преобразование R = R(Q), при некоем p = r/(r-Z).

xr = X*p
yr = Y*p
zr = r-d-Z

R = (xr, yr, zr).
Т.е. проекция применяется после поворота и перед "косметическим" масштабированием. :))))
Литература: "Программирование компьютерной графики" Виктора Порева.


 
WebErr ©   (2004-04-23 17:06) [11]

Разумеется точки, которые после поворота получили координату Z >= r-d не отображаются на экран, т.к. находятся за камерой! :))))
Прошу послать данный материал автору сабжа! :))))


 
WebErr ©   (2004-04-23 17:06) [11]

Разумеется точки, которые после поворота получили координату Z >= r-d не отображаются на экран, т.к. находятся за камерой! :))))
Прошу послать данный материал автору сабжа! :))))


 
WebErr ©   (2004-04-23 17:17) [12]

Могу ещё про вертексное построение с закраской Гуро или Фонга рассказать, но лучше сами почитайте книжку - она того стоит!!! :))))


 
WebErr ©   (2004-04-23 17:17) [12]

Могу ещё про вертексное построение с закраской Гуро или Фонга рассказать, но лучше сами почитайте книжку - она того стоит!!! :))))


 
Дмитрий   (2004-04-23 17:27) [13]

Компоненты есть... И очень даже хорошие... Просто искать надо уметь... Я бы тебе выслал одну, да она на домашнем компе висит... А его я увижу, ой, как нескоро... К сожалению не помню как зовётся...
Ещё вариант - OpenGl... Малой крови не обещаю, зато надёжно и со вкусом...


 
Дмитрий   (2004-04-23 17:27) [13]

Компоненты есть... И очень даже хорошие... Просто искать надо уметь... Я бы тебе выслал одну, да она на домашнем компе висит... А его я увижу, ой, как нескоро... К сожалению не помню как зовётся...
Ещё вариант - OpenGl... Малой крови не обещаю, зато надёжно и со вкусом...


 
WebErr ©   (2004-04-23 17:27) [14]

Если что-то непонятно спрашивайте!


 
WebErr ©   (2004-04-23 17:27) [14]

Если что-то непонятно спрашивайте!


 
WebErr ©   (2004-04-23 17:29) [15]


> Дмитрий   (23.04.04 17:27) [13]

Это всё здорово, но всегда нужно знать как это всё работает! Это касается не только OpenGL & DirectX, но и всеми любимой VCL - WinAPI знать надо не хуже родных библиотек! :))))


 
WebErr ©   (2004-04-23 17:29) [15]


> Дмитрий   (23.04.04 17:27) [13]

Это всё здорово, но всегда нужно знать как это всё работает! Это касается не только OpenGL & DirectX, но и всеми любимой VCL - WinAPI знать надо не хуже родных библиотек! :))))


 
WebErr ©   (2004-04-23 18:14) [16]

Кстати, если неизвесны сферические координаты камеры, а только декартовы (xc, yc, zc), то это даже лучше, тогда оператор T(a, b) считается быстрее, т.к.
< пусть rxy = sqrt(sqr(xc)+sqr(yc)),
 тогда r = sqrt(sqr(r0)+sqr(zc)) >

cos(a) = yc/rxy, sin(a) = xc/rxy
cos(b) = zc/r,   sin(b) = rxy/r

С уважением, Керимов Владимир. (с) :)))) (спец по 3D графике)


 
WebErr ©   (2004-04-23 18:14) [16]

Кстати, если неизвесны сферические координаты камеры, а только декартовы (xc, yc, zc), то это даже лучше, тогда оператор T(a, b) считается быстрее, т.к.
< пусть rxy = sqrt(sqr(xc)+sqr(yc)),
 тогда r = sqrt(sqr(r0)+sqr(zc)) >

cos(a) = yc/rxy, sin(a) = xc/rxy
cos(b) = zc/r,   sin(b) = rxy/r

С уважением, Керимов Владимир. (с) :)))) (спец по 3D графике)


 
WebErr ©   (2004-04-23 18:16) [17]

Где r = sqrt(sqr(rxy)+sqr(zc)) - расстояние от начала координат, до камеры! :))))


 
WebErr ©   (2004-04-23 18:16) [17]

Где r = sqrt(sqr(rxy)+sqr(zc)) - расстояние от начала координат, до камеры! :))))


 
WebErr ©   (2004-04-23 18:50) [18]

Если rxy < eps (rxy близко к нулю), то можно взять любые (a, b), в том числе и (0, 0). :))))


 
WebErr ©   (2004-04-23 18:50) [18]

Если rxy < eps (rxy близко к нулю), то можно взять любые (a, b), в том числе и (0, 0). :))))


 
csr ©   (2004-04-24 12:32) [19]

Давай, я те такую прогу напишу гы ;) Это ж проще пареной репы! Математику надо было учить :). Естессно за вознаграждение! ;)


 
csr ©   (2004-04-24 12:32) [19]

Давай, я те такую прогу напишу гы ;) Это ж проще пареной репы! Математику надо было учить :). Естессно за вознаграждение! ;)


 
Piter ©   (2004-04-24 14:01) [20]

22.04.04 22:33
Очень нужно! ...

22.04.04 23:15
ну и... что никто не сталкивался

нда..


 
Piter ©   (2004-04-24 14:01) [20]

22.04.04 22:33
Очень нужно! ...

22.04.04 23:15
ну и... что никто не сталкивался

нда..



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.029 c
7-1079767987
Kerk
2004-03-20 10:33
2004.05.09
.reloc


6-1079460407
КомофОнСамый
2004-03-16 21:06
2004.05.09
Как вызвать окно с диалапом?


7-1079093913
Arm79
2004-03-12 15:18
2004.05.09
Перехват системных комбинаций клавиш для скринсайвера


7-1079811061
Алексей31
2004-03-20 22:31
2004.05.09
!!! Записать-отформатировать-считать ?!


1-1082655742
Seldon
2004-04-22 21:42
2004.05.09
Не получается TButton.Default :(





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский