Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт сен 21, 2021 06:29

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Конкурс: рисуем космос
Автор Сообщение
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
О, случайно нашел в запасниках. На космос конечно мало похоже - просто шарообразное облачко точек в OpenGL.
Изображение
А вот код не нашел :(
Сообщение Добавлено: Вт июл 06, 2010 14:57
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
_Harry писал(а):
А скриншоты низзя с ваших красивостей?

У меня картинка прямо над кодом. Просто она еще по клавишам вращается, но я попытался подобрать наиболее удачный ракурс.
Сообщение Добавлено: Вт май 11, 2010 22:14
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
_Harry писал(а):
Не знаю не пробовал. :roll: Вот как увижу красивости :shock: так сразу побегу запускать.... :D


ну, собственно, важны не красивости, а краткость кода

Изображение
Сообщение Добавлено: Вт май 11, 2010 19:30
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
Не знаю не пробовал. :roll: Вот как увижу красивости :shock: так сразу побегу запускать.... :D
Сообщение Добавлено: Вт май 11, 2010 17:49
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
_Harry
А что, кварк запустить никак не получится?
Сообщение Добавлено: Вт май 11, 2010 16:49
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
А скриншоты низзя с ваших красивостей?
А еще лучше видео с экрана.
Всем же посмотреть хочется :shuffle;
Сообщение Добавлено: Вт май 11, 2010 14:52
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
вопрос писал(а):
ps у Хищника непонятно, что делают клавиши


Вращают сцену. Это же 3D.
Сообщение Добавлено: Пт май 07, 2010 01:45
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
А. ну да, я не сказал, это алгоритм генерации "сатурна"
меняя коэффициенты или вводя новые можно изменять вид
вот более выразительно
Код:
  250 VALUE PLANET_X
  250 CONSTANT PLANET_Y
100  TIMER_INTERVAL !
: p

500 90 DO 700 10 DO

   PLANET_X I - DUP *
   PLANET_Y J - DUP * + 8000 <        \ сама планета   
   
   IF
   I  J 
      50 PLANET_X 90 + I - 4 / 25 * 18 / +
      50 PLANET_Y 90 + J - 2
       /  255 MOD +
      141 
          RGB   
   \ готово пиксел
   
   J PLANET_Y >
   
   
   IF
   
   PLANET_X I - DUP *
      PLANET_Y J - 9 * 2 / DUP *
      + DUP 28700 < SWAP 14200 > AND
         IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
   
   PLANET_X I - DUP *
      PLANET_Y J - 9 * 2 / DUP *
      + DUP 50700 < SWAP 34200 > AND
         IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
   THEN 
   ELSE
   
   I J 0    
   
   
   PLANET_X I - DUP *
      PLANET_Y J - 9 * 2 /  DUP *
      + DUP 28700 < SWAP 14200 > AND
         IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
   
   PLANET_X I - DUP *
      PLANET_Y J -  18 * 4 / DUP *
      + DUP 50700 < SWAP 34200 > AND
         IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
   
   
   
   THEN
PIXEL
LOOP LOOP

PLANET_X 2 + DUP TO PLANET_X   PLANET_X 500 =
IF ['] NOOP TO <TIMER> THEN
;

' p TO <TIMER>


ps у Хищника непонятно, что делают клавиши
Сообщение Добавлено: Пт май 07, 2010 00:51
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
Код:
  250 VALUE PLANET_X
  250 CONSTANT PLANET_Y
100  TIMER_INTERVAL !
: p

700 10 DO 700 10 DO

   PLANET_X I - DUP *
   PLANET_Y J - DUP * + 8000 <        \ сама планета   
   
   IF
      I  J 
        50 50 141 
           RGB   
      \ готово пиксел
      
      J PLANET_Y >
      
      
      IF
      
      PLANET_X I - DUP *
        PLANET_Y J - 6 * DUP *
        + DUP 28700 < SWAP 14200 > AND
          IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
      
      PLANET_X I - DUP *
        PLANET_Y J - 6 * DUP *
        + DUP 50700 < SWAP 34200 > AND
          IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
      THEN 
   ELSE
      
      I J 0   
      
      
      PLANET_X I - DUP *
        PLANET_Y J - 6 * DUP *
        + DUP 28700 < SWAP 14200 > AND
          IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
      
      PLANET_X I - DUP *
        PLANET_Y J -  6 * DUP *
        + DUP 50700 < SWAP 34200 > AND
          IF DROP 250  PLANET_X  I - ABS 240 MOD PLANET_Y J - I * 255 MOD RGB THEN
      
      
      
   THEN
PIXEL
LOOP LOOP

PLANET_X 2 + DUP TO PLANET_X   PLANET_X 500 =
IF ['] NOOP TO <TIMER> THEN
;

' p TO <TIMER>
Сообщение Добавлено: Чт май 06, 2010 17:49
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
Что-то я никак скриншот не закачаю никуда, так что смотрим картинку в кварке :)

Ой, нет, закачал

Изображение


Код:
0 VALUE ActiveLibrary

: FUNCTION ActiveLibrary SWAP GETPROCADDRESS VALUE ;

" opengl32.dll" LOADLIBRARY VALUE OPENGL
OPENGL TO ActiveLibrary

: ? DUP 0 = IF . THEN ;

" glViewport" FUNCTION glViewPort@   : glViewPort glViewPort@ API4 DROP ;
" glPointSize" FUNCTION glPointSize@ : glPointSize glPointSize@ API1 DROP ;
" glColor3i" FUNCTION glColor3i@     : glColor3i glColor3i@ API3 DROP ;
" glColor3ubv" FUNCTION glColor3ubv@ : glColor3ubv glColor3ubv@ API1 DROP ;
" glColor4ubv" FUNCTION glColor4ubv@ : glColor4ubv glColor4ubv@ API1 DROP ;
" glVertex2dv" FUNCTION glVertex2dv@ : glVertex2dv glVertex2dv@ API1 DROP ;
" glVertex3dv" FUNCTION glVertex3dv@ : glVertex3dv glVertex3dv@ API1 DROP ;
" glBegin" FUNCTION glBegin@         : glBegin glBegin@ API1 DROP ;
" glEnd" FUNCTION glEnd@             : glEnd glEnd@ API0 DROP ;
" glEnable" FUNCTION glEnable@       : glEnable glEnable@ API1 DROP ;
" glDisable" FUNCTION glDisable@     : glDisable glDisable@ API1 DROP ;
" glClear" FUNCTION glClear@         : glClear glClear@ API1 DROP ;
" glPushMatrix" FUNCTION glPushMatrix@ : glPushMatrix glPushMatrix@ API0 DROP ;
" glPopMatrix" FUNCTION glPopMatrix@   : glPopMatrix glPopMatrix@ API0 DROP ;
" glFrustum" FUNCTION glFrustum@       : glFrustum 6 glFrustum@ API DROP ;
" glTranslatef" FUNCTION glTranslatef@ : glTranslatef glTranslatef@ API3 DROP ;
" glTexImage2D" FUNCTION glTexImage2D@ : glTexImage2D glTexImage2D@ API9 DROP ;
" glTexParameteri" FUNCTION glTexParameteri@ : glTexParameteri glTexParameteri@ API3 DROP ;
" glTexCoord2dv" FUNCTION glTexCoord2dv@ : glTexCoord2dv glTexCoord2dv@ API1 DROP ;
" glTexEnvf" FUNCTION glTexEnvf@ : glTexEnvf glTexEnvf@ API3 DROP ;

CREATE AUX3D[] 24 ALLOT

: 3dpoint
  S>F 1000.0 F/ AUX3D[] 16 + F!
  S>F 1000.0 F/ AUX3D[] 8 + F!
  S>F 1000.0 F/ AUX3D[] F!
  AUX3D[] glVertex3dv
;

CREATE TexPoint0 0.0 F, 0.0 F, 0.0 F,
CREATE TexPoint1 1.0 F, 0.0 F, 0.0 F,
CREATE TexPoint2 1.0 F, 1.0 F, 0.0 F,
CREATE TexPoint3 0.0 F, 1.0 F, 0.0 F,

CREATE Point0 0.0 F, 0.0 F, 0.0 F,
CREATE Point1 -1.0 F, 0.0 F, 0.0 F,
CREATE Point2 1.0 F, 0.0 F, 0.0 F,
CREATE Point3 0.0 F, 1.0 F, 0.0 F,
CREATE Point4 0.0 F, -1.0 F, 0.0 F,
CREATE Point5 0.0 F, 0.0 F, 1.0 F,
CREATE Point6 0.0 F, 0.0 F, -1.0 F,

CREATE Triangle1A 0.0 F, 0.0 F, -0.50 F,
CREATE Triangle1B 0.0 F, 0.5 F, -0.51 F,
CREATE Triangle1C 1.0 F, 0.9 F, -0.59 F,

FLOAT NX 1420.0 NX F!
FLOAT NY 320.0 NY F!
FLOAT NZ

: X+ NX F@ 10.0 F+ NX F! NX F@ 360.0 F> IF NX F@ 360.0 F- NX F! THEN
;
: X- NX F@ 10.0 F- NX F! NY F@ 0.0 F< IF NX F@ 360.0 F+ NX F! THEN
;
: Y+ NY F@ 10.0 F+ NY F! NY F@ 360.0 F> IF NY F@ 360.0 F- NY F! THEN ;
: Y- NY F@ 10.0 F- NY F! NY F@ 0.0 F< IF NY F@ 360.0 F+ NY F! THEN ;
: Z+ NZ F@ 10.0 F+ NZ F! NZ F@ 360.0 F> IF NZ F@ 360.0 F- NZ F! THEN ;
: Z- NZ F@ 10.0 F- NZ F! NZ F@ 0.0 F< IF NZ F@ 360.0 F+ NZ F! THEN ;



FLOAT ENGINE.X 0.0 ENGINE.X F!
FLOAT ENGINE.Y 0.0 ENGINE.Y F!
FLOAT ENGINE.Z 0.0 ENGINE.Z F!
FLOAT ENGINE.DIAMETER 0.08 ENGINE.DIAMETER F!
FLOAT ENGINE.L 0.4 ENGINE.L F!


: DRAW-ENGINE
  0x7FFFFFFF DUP DUP glColor3i
  40 0 DO
    GL_QUADS glBegin
      I S>F 40.0 F/ 2.0 F* PI F* FCOS ENGINE.DIAMETER F@ F* ENGINE.X F@ F+ Point1 F!
      I S>F 40.0 F/ 2.0 F* PI F* FSIN ENGINE.DIAMETER F@ F* ENGINE.Y F@ F+ Point1 8 + F!
      ENGINE.L F@ -0.5 F* ENGINE.Z F@ F+ Point1 16 + F!
     
      I 1 + S>F 40.0 F/ 2.0 F* PI F* FCOS ENGINE.DIAMETER F@ F* ENGINE.X F@ F+ Point2 F!
      I 1 + S>F 40.0 F/ 2.0 F* PI F* FSIN ENGINE.DIAMETER F@ F* ENGINE.Y F@ F+ Point2 8 + F!
      ENGINE.L F@ -0.5 F* ENGINE.Z F@ F+ Point2 16 + F!

      I 1 + S>F 40.0 F/ 2.0 F* PI F* FCOS ENGINE.DIAMETER F@ F* ENGINE.X F@ F+ Point3 F!
      I 1 + S>F 40.0 F/ 2.0 F* PI F* FSIN ENGINE.DIAMETER F@ F* ENGINE.Y F@ F+ Point3 8 + F!
      ENGINE.L F@ 0.5 F* ENGINE.Z F@ F+ Point3 16 + F!

      I S>F 40.0 F/ 2.0 F* PI F* FCOS ENGINE.DIAMETER F@ F* ENGINE.X F@ F+ Point4 F!
      I S>F 40.0 F/ 2.0 F* PI F* FSIN ENGINE.DIAMETER F@ F* ENGINE.Y F@ F+ Point4 8 + F!
      ENGINE.L F@ 0.5 F* ENGINE.Z F@ F+ Point4 16 + F!

      Point1 glVertex3dv
      Point2 glVertex3dv
      Point3 glVertex3dv
      Point4 glVertex3dv
    glEnd
  LOOP
 
  0x7FFFFFFF 0 0 glColor3i
  40 0 DO
    GL_TRIANGLES glBegin
      I S>F 40.0 F/ 2.0 F* PI F* FCOS ENGINE.DIAMETER F@ F* ENGINE.X F@ F+ Point1 F!
      I S>F 40.0 F/ 2.0 F* PI F* FSIN ENGINE.DIAMETER F@ F* ENGINE.Y F@ F+ Point1 8 + F!
      ENGINE.L F@ -0.5 F* ENGINE.Z F@ F+ Point1 16 + F!

      I 1 + S>F 40.0 F/ 2.0 F* PI F* FCOS ENGINE.DIAMETER F@ F* ENGINE.X F@ F+ Point2 F!
      I 1 + S>F 40.0 F/ 2.0 F* PI F* FSIN ENGINE.DIAMETER F@ F* ENGINE.Y F@ F+ Point2 8 + F!
      ENGINE.L F@ -0.5 F* ENGINE.Z F@ F+ Point2 16 + F!

      0.0 ENGINE.X F@ F+ Point3 F!
      0.0 ENGINE.Y F@ F+ Point3 8 + F!
      ENGINE.L F@ 0.5 F* ENGINE.Z F@ F+ Point3 16 + F!

      Point1 glVertex3dv
      Point2 glVertex3dv
      Point3 glVertex3dv
    glEnd
  LOOP
;

: DRAW-HULL
  0x3FFFFFFF DUP DUP glColor3i
  -0.3 Point1 F! 0.1 Point1 8 + F! 0.2 Point1 16 + F!
  -0.2 Point2 F! 0.1 Point2 8 + F! 0.7 Point2 16 + F!
   0.2 Point3 F! 0.1 Point3 8 + F! 0.7 Point3 16 + F!
   0.3 Point4 F! 0.1 Point4 8 + F! 0.2 Point4 16 + F!
  GL_QUADS glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
    Point4 glVertex3dv
  glEnd
  -0.3 Point1 F! -0.1 Point1 8 + F! 0.2 Point1 16 + F!
  -0.2 Point2 F! -0.1 Point2 8 + F! 0.7 Point2 16 + F!
   0.2 Point3 F! -0.1 Point3 8 + F! 0.7 Point3 16 + F!
   0.3 Point4 F! -0.1 Point4 8 + F! 0.2 Point4 16 + F!
  GL_QUADS glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
    Point4 glVertex3dv
  glEnd

  -0.3 Point1 F! -0.1 Point1 8 + F! 0.2 Point1 16 + F!
  -0.2 Point2 F! -0.1 Point2 8 + F! 0.7 Point2 16 + F!
  -0.2 Point3 F! 0.1 Point3 8 + F! 0.7 Point3 16 + F!
  -0.3 Point4 F! 0.1 Point4 8 + F! 0.2 Point4 16 + F!
  GL_QUADS glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
    Point4 glVertex3dv
  glEnd
  0.3 Point1 F! -0.1 Point1 8 + F! 0.2 Point1 16 + F!
  0.2 Point2 F! -0.1 Point2 8 + F! 0.7 Point2 16 + F!
  0.2 Point3 F! 0.1 Point3 8 + F! 0.7 Point3 16 + F!
  0.3 Point4 F! 0.1 Point4 8 + F! 0.2 Point4 16 + F!
  GL_QUADS glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
    Point4 glVertex3dv
  glEnd

  0x7FFFFFFF DUP DUP glColor3i

  0.0 Point1 F! 0.0 Point1 8 + F! 1.2 Point1 16 + F!
  0.2 Point2 F! -0.1 Point2 8 + F! 0.7 Point2 16 + F!
  0.2 Point3 F! 0.1 Point3 8 + F! 0.7 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

  0.0 Point1 F! 0.0 Point1 8 + F! 1.2 Point1 16 + F!
  -0.2 Point2 F! -0.1 Point2 8 + F! 0.7 Point2 16 + F!
  -0.2 Point3 F! 0.1 Point3 8 + F! 0.7 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

  0 0x3FFFFFFF DUP glColor3i

  0.0 Point1 F! 0.0 Point1 8 + F! 1.2 Point1 16 + F!
  -0.2 Point2 F! 0.1 Point2 8 + F! 0.7 Point2 16 + F!
  0.2 Point3 F! 0.1 Point3 8 + F! 0.7 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd
 
  0x3FFFFFFF DUP DUP glColor3i

  0.0 Point1 F! 0.0 Point1 8 + F! 1.2 Point1 16 + F!
  -0.2 Point2 F! -0.1 Point2 8 + F! 0.7 Point2 16 + F!
  0.2 Point3 F! -0.1 Point3 8 + F! 0.7 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd


  0x7FFFFFFF DUP DUP glColor3i

  -0.5 Point1 F! 0.0 Point1 8 + F! 0.3 Point1 16 + F!
  -0.2 Point2 F! 0.0 Point2 8 + F! 0.7 Point2 16 + F!
  -0.25 Point3 F! 0.0 Point3 8 + F! 0.3 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

  0.5 Point1 F! 0.0 Point1 8 + F! 0.3 Point1 16 + F!
  0.2 Point2 F! 0.0 Point2 8 + F! 0.7 Point2 16 + F!
  0.25 Point3 F! 0.0 Point3 8 + F! 0.3 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

;

: DRAW-FIRE
  0 0x7FFFFFFF DUP glColor3i

  -0.21 Point1 F! -0.01 Point1 8 + F! 0.9 Point1 16 + F!
  -0.21 Point2 F! 0.01 Point2 8 + F! 0.9 Point2 16 + F!
  -0.2 Point3 F! 0.0 Point3 8 + F! 1.2 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

  -0.19 Point1 F! -0.01 Point1 8 + F! 0.9 Point1 16 + F!
  -0.19 Point2 F! 0.01 Point2 8 + F! 0.9 Point2 16 + F!
  -0.2 Point3 F! 0.0 Point3 8 + F! 1.2 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

  -0.21 Point1 F! 0.01 Point1 8 + F! 0.9 Point1 16 + F!
  -0.19 Point2 F! 0.01 Point2 8 + F! 0.9 Point2 16 + F!
  -0.2 Point3 F! 0.0 Point3 8 + F! 1.2 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd

  -0.21 Point1 F! -0.01 Point1 8 + F! 0.9 Point1 16 + F!
  -0.19 Point2 F! -0.01 Point2 8 + F! 0.9 Point2 16 + F!
  -0.2 Point3 F! 0.0 Point3 8 + F! 1.2 Point3 16 + F!

  GL_TRIANGLES glBegin
    Point1 glVertex3dv
    Point2 glVertex3dv
    Point3 glVertex3dv
  glEnd
;

: TEST
  0 0 700 700 glViewPort
  glPushMatrix


  GL_DEPTH_TEST glEnable
  GL_DEPTH_BUFFER_BIT glClear

  GL_LIGHTING glEnable
  GL_LIGHT0 glEnable
  GL_LIGHT1 glEnable
  GL_COLOR_MATERIAL glEnable
  GL_LINE_SMOOTH glEnable

  0 0x7FFFFFFF 0 glColor3i

  NX F@ ROTATEANGLE SF!
  1.0 glX SF!
  0.0 glY SF!
  0.0 glZ SF!
  3DROTATE

  NY F@ ROTATEANGLE SF! // -120
  0.0 glX SF!
  1.0 glY SF!
  0.0 glZ SF!
  3DROTATE

  NZ F@ ROTATEANGLE SF! // 100
  0.0 glX SF!
  0.0 glY SF!
  1.0 glZ SF!
  3DROTATE


  0x3FFFFFFF DUP DUP glColor3i

   -0.2 ENGINE.X F!
   0.0 ENGINE.Y F!
   0.0 ENGINE.Z F!
   DRAW-ENGINE

   0.0 ENGINE.X F!
   0.0 ENGINE.Y F!
   0.0 ENGINE.Z F!
   DRAW-ENGINE

   0.2 ENGINE.X F!
   0.0 ENGINE.Y F!
   0.0 ENGINE.Z F!
   DRAW-ENGINE
   
   DRAW-HULL
   
   DRAW-FIRE

  glPopMatrix
;

' TEST TO 3D

' X+ TO K_UP
' X- TO K_DOWN
' Y+ TO K_LEFT
' Y- TO K_RIGHT
' Z+ TO K_PGUP
' Z- TO K_PGDOWN
Сообщение Добавлено: Чт май 06, 2010 16:55
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
Там оно еще будет сильно глючить, потому что 300 TO TIMER_INTERVAL установило адрес переменной на 300. Так что последующая запись туда нового значения через ! полезет в системную область. Это следствие особенностей ассемблерного кода кварка для QUAN и VARIABLE - они начинаются с mov eax, NNNN, причем для QUAN это само значение и есть, а для VARIABLE - адрес.
Сообщение Добавлено: Чт май 06, 2010 16:38
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
Хищник писал(а):
вопрос писал(а):
300 TO TIMER_INTERVAL

300 TIMER_INTERVAL !

Я тоже постоянно путаю, как-то вот сделал таймер через VARIABLE, а просится QUAN.

Но "газовые процессы" смотрятся красиво :)


Исправил, а я то думаю, что это оно не меняется
Сообщение Добавлено: Чт май 06, 2010 15:56
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
вопрос писал(а):
300 TO TIMER_INTERVAL

300 TIMER_INTERVAL !

Я тоже постоянно путаю, как-то вот сделал таймер через VARIABLE, а просится QUAN.

Но "газовые процессы" смотрятся красиво :)
Сообщение Добавлено: Чт май 06, 2010 09:15
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
Хм, так нагляднее
Код:

  4 VALUE V3
  40 VALUE PLANET
300  TIMER_INTERVAL !
: p

250 1 DO 250 1 DO

   125 I - DUP * 125 J - DUP * + 15600 <        \ сама планета
   
   IF
   J I  J   I   210 RGB
   \ готово пиксел
   
   \  " текстура" или "вихри"
   I I 3 * 2 / * J 4 * +
   DUP 17 MOD 7 <
   OVER 31 MOD V3 2 * 3 / < OR
   SWAP 43 MOD V3 > OR
   
   
   IF DROP
   \ 0
   6579300
   THEN 
   
   
      125 I - DUP *  PLANET J - DUP * + 900 <       \ satelite
      IF DROP 0 THEN
   PLANET I - DUP *  125 J - DUP * + 625 <  \ other satelite
   IF DROP 255 255 255 RGB THEN
   
   PIXEL
   
   THEN

LOOP LOOP

V3 1 + DUP TO V3 40 =
IF ['] NOOP TO <TIMER> THEN PLANET 4 + TO PLANET
;

' p TO <TIMER>
Сообщение Добавлено: Ср май 05, 2010 21:07
  Заголовок сообщения:  Re: Конкурс: рисуем космос  Ответить с цитатой
:D :)
для кварка

Код:
  4 VALUE V3
  40 VALUE PLANET
  30 VALUE RADIUS
200  TIMER_INTERVAL !
: p

250 1 DO 250 1 DO

   125 I - DUP * 125 J - DUP * + 15600 <        \ сама планета
   
   IF
   J I  J   I   210 RGB
   \ готово пиксел
   
   \  " текстура или "вихри"
   I I 3 * 2 / * J 4 * +
   DUP 17 MOD 7 <
   OVER 31 MOD V3 2 * 3 / < OR
   SWAP 43 MOD V3 > OR
   
   
      125 I - DUP *  PLANET J - DUP * + 900 <       \ satelite
   OR


   IF DROP 0 THEN 
   
   
   PLANET I - DUP *  125 J - DUP * + 625 <  \ other satelite
   IF DROP 255 255 255 RGB THEN
   
   PIXEL
   
   THEN

LOOP LOOP

V3 1 + DUP TO V3 40 =
IF ['] NOOP TO <TIMER> THEN PLANET 4 + TO PLANET
;

' p TO <TIMER>


газовый гигант (в нём происходят какие-то там процессы), вокруг него по перпендикулярным орбитам движутся 2 спутника - один светится. другой нет, в процессе происходит полное затмение одного другим :D
Сообщение Добавлено: Ср май 05, 2010 21:00

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


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