Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб апр 20, 2024 00:55

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 152 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 11  След.
Автор Сообщение
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вт май 25, 2010 22:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Поправил, пока не выкладывая. Уже не пытается, но табуляция - печатаемый символ. В том смысле, что печатаются не пробелы, а кружочек.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вт май 25, 2010 23:22 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Вообще да - главное оружие против ошибок - массовость


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Ср май 26, 2010 00:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Вообще да - главное оружие против ошибок - массовость

Полностью согласен. Умозрительно спроектировать систему, предусмотрев ее поведение во всех возможных ситуациях, крайне сложно. Пусть уж лучше мелкими шажками, зато проверяя на конкретных задачах.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вт сен 28, 2010 00:26 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Не уверен баг это или нет но мне не удается ничего нарисовать на экране протона (имеется в виду вкладка экран). Она вообще для чего? Может я чего не понимаю.
В общем то очень не хватает хоть какого то хелпа по протону там далеко не все понятно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Ср сен 29, 2010 00:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
_Harry писал(а):
Не уверен баг это или нет но мне не удается ничего нарисовать на экране протона (имеется в виду вкладка экран). Она вообще для чего? Может я чего не понимаю.
В общем то очень не хватает хоть какого то хелпа по протону там далеко не все понятно.

Увы, с протоном не все так просто. Он был написан в качестве эксперимента на Lazarus, да так и остался, исключительно из-за удобного компонента редактора. Работа с OpenGL в Lazarus довольно неоднозначна, она сильно зависит от драйвера. Хорошие результаты дают встроенные контроллеры Intel GMA, а вот Nvidia и ATI - "по настроению". Я чаще пользуюь чистым кварком, к тому же потихоьку делаю на нем редактор. Могу посоветовать проверить драйвер opengl32.dll, не остался ли он стандартным еще от Windows (на дискретных видокартах это почти всегда давало проблемы на примерах самого Lazarus). А вообще, подключение quark.dll к приложению на чем-то класса Дельфи достаточно нетрудоемко. Наверняка что-то из современных версий RAD может нормально отрисовать экранчик (кстати, для quark.dll это может быть и не OpenGL, там ведь передается просто образ экрана).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Чт сен 30, 2010 00:37 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Хищник писал(а):
Увы, с протоном не все так просто.

Да и не только с протоном. У меня например неполучилось использовать слова 3DROTATE
и 3DTRANSLATE ( т.е. нет никакого видимого эффекта) . Возможно что я что то не так делал но из описания не понятно как ими воспользоваться неплохо бы примеры хотя бы элементарные.

Вот примерно что писалось:
Код:
255 127 255 RGB VALUE col

: ColHln col HLINE ;

: ColVln col VLINE ;
// рисуем квадратик
: sqv // x y l -- x y l
         FRAME{ ARG2 @ ARG1 @ ARG0 @ ColHln
                ARG2 @ ARG1 @ ARG0 @ ColVln
                ARG2 @ ARG0 @ ARG1 @ + ARG0 @ ColHln
                ARG2 @ ARG0 @ + ARG1 @ ARG0 @ ColVln }FRAME
                ;
100 100 100
: drw  sqv 3DROTATE ;
' drw TO 3D

100.00
glX SF!
100.00
glY SF!
100.00
glZ SF!
60.0
ROTATEANGLE SF!
: fvar. SF@ F. ;
: glvars. ROTATEANGLE ." RA=" fvar.
          glX         ." X="  fvar.
          glY         ." Y="  fvar.
          glZ         ." Z="  fvar. ;   
glvars. показывает что значения переменных правильные, но квадратик стоит на месте как вкопаный :(
OpenGL -- 5.1.2600.5512


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс окт 03, 2010 14:45 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Начинаем с подключения OpenGL
Код:
0 VALUE ActiveLibrary

: FUNCTION ActiveLibrary SWAP GETPROCADDRESS VALUE ;

" opengl32.dll" LOADLIBRARY VALUE OPENGL
OPENGL TO ActiveLibrary

" glPushMatrix" FUNCTION glPushMatrix@ : glPushMatrix glPushMatrix@ API0 DROP ;
" glPopMatrix" FUNCTION glPopMatrix@   : glPopMatrix glPopMatrix@ API0 DROP ;
" glVertex3dv" FUNCTION glVertex3dv@ : glVertex3dv glVertex3dv@ API1 DROP ;
" glBegin" FUNCTION glBegin@         : glBegin glBegin@ API1 DROP ;
" glEnd" FUNCTION glEnd@             : glEnd glEnd@ API0 DROP ; 


Графика в трехмерной сцене рисуется немного не так. То, что выводит кварк - это результат действия функции, осуществляющей прямой доступ к поверхности окна. Там возможно прямое управление пикселами, но никакие трехмерные преобразования таким образом выполнить нельзя. Рисование трехмерной сцены выполняется с помощью графических примитивов OpenGL, для которых задаются координаты внутри куба, лежащем в координатах -1;1. Поэтому делаем так:

Код:
CREATE Point1 3 FLOATS ALLOT
CREATE Point2 3 FLOATS ALLOT

// Это мы сделали два массива для хранения координат точек в формате X Y Z. Каждое число - double float

: ColHln // col HLINE ;  это тут было, но оно выведет прямо в видеобуфер, а нам такое не надо
0.0 Point1 2 -FTH F!     // координата Z будет равна 0
SWAP S>F 1000.0 F/ Point1 1 -FTH F!  // координату Y забираем со стека (там в это время X Y L), делим на 1000, чтобы вписать в трехмерный куб
SWAP S>F 1000.0 F/ Point1 F!  // аналогично X делим на 1000

Point1 F@ S>F 1000.0 F/ F+ Point2 F@  // вторая точка имеет те же Y Z, но X должен отстоять на L, так что плюсуем L к X первой точки
Point1 1 -FTH F@ Point2 1 -FTH F!
0.0 Point2 2 -FTH F!

// теперь описываем примитив LINE в сцене OpenGL
GL_LINES glBegin        // начинаем описание примитива
    Point1 glVertex3dv  // Vertex - это точка, она относится к текущему примитиву, суффикс 3dv означает, что Point1 - это указатель (Vector)
    Point2 glVertex3dv  // на массив 3 точек, записанных в формате Double float
  glEnd
;

: ColVln // col VLINE ;  аналогично делаем вертикальную линию
0.0 Point1 2 -FTH F!
SWAP S>F 1000.0 F/ Point1 1 -FTH F!
SWAP S>F 1000.0 F/ Point1 F!

Point1 F@ Point2 F!
Point1 1 -FTH F@ S>F 1000.0 F/ F+ Point2 1 -FTH F@
0.0 Point2 2 -FTH F!

GL_LINES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
  glEnd
;                     


Код:
: sqv // x y l -- x y l
glPushMatrix  // добавлено
FRAME{ ARG2 @ ARG1 @ ARG0 @ ColHln
                ARG2 @ ARG1 @ ARG0 @ ColVln
                ARG2 @ ARG0 @ ARG1 @ + ARG0 @ ColHln
                ARG2 @ ARG0 @ + ARG1 @ ARG0 @ ColVln }FRAME
glPopMatrix  // добавлено
;   


У меня забегал квадратик, но угол поворота большой, поэтому он больше похож на отрезок линии. Надо подбирать углы поворота сцены. Повороты в трехмерном пространстве не коммутативны, поэтому результат не сразу очевиден.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс окт 03, 2010 16:41 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Спасибо
Хищник писал(а):
Графика в трехмерной сцене рисуется немного не так.

Ну может стоит все же в документации на это намекнуть, а то совсем не очевидно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс окт 03, 2010 16:46 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ну, оно там вобщем-то отражено

Цитата:
3D
Векторное слово, вызывается после копирования
внутреннего буфера на экран, предназначено для
наложения трехмерной сцены поверх двумерного
буфера


Я полагаю, тут надо скорее написать howto по трехмерной графике. Наверное, займусь.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс окт 03, 2010 16:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
http://fforum.winglion.ru/viewtopic.php?f=23&t=1118
Вот тема с трехмерной графикой.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс окт 03, 2010 16:59 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Хищник писал(а):
Я полагаю, тут надо скорее написать howto по трехмерной графике.
Да именно про это.

То что очевидно автору не всегда очевидно другим. Я например по простоте решил
что линии нарисованные HLINE и VLINE можно будет поворачивать. Нигде ведь не сказано что они рисуются прямо на поверхности окна.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 14, 2012 15:11 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Прямо сейчас...

отключил Касперского, чтобы не совал палки в колеса...

Скачал кварк из http://www.msyst.ru/quarkexe.zip

распаковал в отдельную папку, создал рядом файлик со следующим содержимым:


' BYE TO K_ESC

\ 2 2 + . CR

2 2 + . CR



Первая строчка, чтобы правый верхний крестик мышой не ловить...

В последней строчке вместо пробелов табуляция...

Запустил quark.exe test.f

получил:

2o2o+o.oCR ?

вместо 'о' - колеса...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Сб апр 14, 2012 16:47 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Проблема с табуляциями устранена, билд 30 в http://www.msyst.ru/quarkexe.zip
Из свежего там CREATE-WORD ( str -- ), которое создает новую словарную статью с именем, взятым со стека, а также новая константа GL_BGR для представления формата цвета в OpenGL.



За это сообщение автора Hishnik поблагодарил: WingLion
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Пн апр 16, 2012 09:16 
ввожу:

Код:
RED SETCOLOR ." красный "
GREEN SETCOLOR ." зеленый "
BLUE SETCOLOR ." синий "


И получаю, что красный и синий цвета перепутаны.
(в build 28 - тоже)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Пн апр 16, 2012 09:41 
Лечу кодом:
Код:
-1 0 0 RGB CONSTANT BLUE
0 -1 0 RGB CONSTANT GREEN
0 0 -1 RGB CONSTANT RED


В начале исходника


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 152 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 11  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB