http://alpha-thema-online.uv.ro
Fa-ti si tu propriul forum, pe www.myforum.ro!
Pagina de start a forumului http://alpha-thema-online.uv.ro Autentificare Inregistrare FAQ Membri Cautare

Pagina de start a forumului http://alpha-thema-online.uv.ro » Exemple Coduri » Matrix Clock
Creaza un subiect nou  Raspunde la subiect Subiectul anterior :: Subiectul urmator 
Matrix Clock
MesajTrimis: 06/07/2007 10:05 Raspunde cu citat (quote)
Ad_Infinitum
Administrator
Administrator
Ad_Infinitum
Data inscrierii: 23/Iun/2007
Mesaje: 212




Un ceas 3D ff reusit ;-)

REMstart
-------------------------------------------------------------------
program name: matrix clock
-------------------------------------------------------------------
written by: latch
date: 18-01-2007
-------------------------------------------------------------------
comments: clock using matrix POINT heights
-------------------------------------------------------------------
REMend

SET DISPLAY MODE 800,600,32
AUTOCAM OFF
SYNC ON
SYNC RATE 60
HIDE MOUSE


REM =============================================================
REM = Array to hold number data
REM =============================================================
tilex=69
tilez=18

DIM number(9,tilez,tilex)

FOR n = 0 TO 9
FOR z = 0 TO tilez
FOR x = 0 TO 8
READ number(n,z,x)
NEXT x
NEXT z
NEXT n

REM =============================================================
REM = CREATE MATRIX
REM =============================================================

MAKE MATRIX 1,tilex,tilez,tilex,tilez

REM add colons
FOR z = 0 TO tilez
FOR x = 0 TO 1
READ y
SET MATRIX HEIGHT 1,x+46,z,y*3
SET MATRIX HEIGHT 1,x+22,z,y*3
NEXT x
NEXT z

`SET MATRIX Matrix Number, Wireframe, Transparency, Cull, Filter, Light, Fog, Ambient
SET MATRIX 1,1,1,1,1,1,1,0
UPDATE MATRIX 1

REM =============================================================
REM = MAKE CASE TO HOLD CLOCK
REM =============================================================

MAKE OBJECT BOX 1,69,6,18
COLOR OBJECT 1,RGB(0,10,255)
GHOST OBJECT ON 1
POSITION OBJECT 1,34.5,3,9

POSITION CAMERA tilex/2,50,-10
XROTATE CAMERA 75

REM =============================================================
REM = MAIN LOOP
REM =============================================================

GOSUB _lighting
COLOR BACKDROP 0

DO

GOSUB _time_pos

GOSUB _move_spot

REM move camera left and right
camx#=CAMERA POSITION X()
IF LEFTKEY()=1 THEN camx#=CAMERA POSITION X()-.5
IF RIGHTKEY()=1 THEN camx#=CAMERA POSITION X()+.5
POSITION CAMERA camx#,CAMERA POSITION Y(),CAMERA POSITION Z()

REM info
TEXT 0,0,"Move camera left + right with arrow keys"

SYNC

LOOP

END

REM =============================================================
REM = SUB-ROUTINES
REM =============================================================

_time_pos:

height=5
a$=GET TIME$()
sizet=LEN(a$)

REM get seconds
sec1=VAL(MID$(a$,sizet))
sec2=VAL(MID$(a$,sizet-1))
REM get minutes
min1=VAL(MID$(a$,sizet-3))
min2=VAL(MID$(a$,sizet-4))
REM get hours
hour1=VAL(MID$(a$,sizet-6))
hour2=VAL(MID$(a$,sizet-7))

FOR z = 0 TO tilez
FOR x = 0 TO 8
SET MATRIX HEIGHT 1,x+60,z,number(sec1,z,x)*height
SET MATRIX HEIGHT 1,x+49,z,number(sec2,z,x)*height
SET MATRIX HEIGHT 1,x+36,z,number(min1,z,x)*height
SET MATRIX HEIGHT 1,x+25,z,number(min2,z,x)*height
SET MATRIX HEIGHT 1,x+12,z,number(hour1,z,x)*height
SET MATRIX HEIGHT 1,x+1,z,number(hour2,z,x)*height
NEXT x
NEXT z

GOSUB _smooth_matrix

UPDATE MATRIX 1

RETURN
`------------------------------------------------------------------------
_smooth_matrix:

REM from DarkBASIC example code
REM Author : DBS-LB
REM Date : 19th July 2000

REM Use matrix normals to make it smooth
FOR z=1 TO tilez
FOR x=1 TO tilex

REM Get matrix heights
h8#=GET MATRIX HEIGHT(1,x,z-1)
h4#=GET MATRIX HEIGHT(1,x-1,z)
h#=GET MATRIX HEIGHT(1,x,z)
h2#=GET MATRIX HEIGHT(1,x,z)

REM Calculate projected angle X using heights
x1#=(x-1)*25.0 : y1#=h#
x2#=(x+0)*25.0 : y2#=h4#
dx#=x2#-x1#
dy#=y2#-y1#
ax#=ATANFULL(dx#,dy#)
ax#=WRAPVALUE(90-ax#)

REM Calculate projected angle Z using heights
z1#=(z-1)*25.0 : y1#=h2#
z2#=(z+0)*25.0 : y2#=h8#
dz#=z2#-z1#
dy#=y2#-y1#
az#=ATANFULL(dz#,dy#)
az#=WRAPVALUE(90-az#)

REM Make natural from projected angle
nx#=SIN(ax#)
ny#=COS(ax#)
nz#=SIN(az#)

REM Setting matrix normal for smoothness
SET MATRIX NORMAL 1,x,z,nx#,ny#,nz#

NEXT x
NEXT z

RETURN
`------------------------------------------------------------------------
_lighting:

MAKE LIGHT 1
MAKE LIGHT 2
MAKE LIGHT 3

set POINT light 0,-30,5,10
COLOR LIGHT 0,RGB(0,0,255)

set POINT light 1,100,5,10
COLOR LIGHT 1,RGB(0,0,255)

set POINT light 2,34.5,8,20
COLOR LIGHT 2,RGB(0,0,255)

SET SPOT LIGHT 3,5,15
COLOR LIGHT 3,RGB(0,200,100)
POSITION LIGHT 3,35,60,0
POINT light 3,tilex/2,0,tilez/2

SET AMBIENT LIGHT 0

RETURN
`-------------------------------------------------------------------------
_move_spot:

ang#=WRAPVALUE(ang#+.5)
ROTATE LIGHT 3,ang#,ang#,0

RETURN

REM =============================================================
REM = DATA STATEMENTS
REM =============================================================

REM 0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,1,1,1,1,1,1,1,0
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,0,0,0,0,0,1,1
DATA 1,1,0,0,0,0,0,1,1
DATA 1,1,0,0,0,0,0,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 0,1,1,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 1
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 2
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0
DATA 0,1,1,1,1,1,1,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 0,1,1,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,1,1,1,1,1,1,0
DATA 0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 3
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 4
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,1,1,1,1,1,1
DATA 0,0,1,1,1,1,1,1,1
DATA 0,1,1,1,1,1,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 0,1,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 5
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,1,1,1,1,1,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0
DATA 0,0,0,1,1,1,1,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 6
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,1,1,1,1,1,1,1,0
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,1,1,1,1,1,0
DATA 1,1,1,1,1,1,1,0,0
DATA 1,1,1,1,1,1,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 1,1,1,0,0,0,0,0,0
DATA 0,1,1,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 7
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,1,0,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 0,1,1,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 8
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,1,1,1,1,1,1,1,0
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 0,1,1,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,1,1,1,1,1,1,1,0
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 0,1,1,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM 9
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,1,1,0
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1
DATA 0,0,0,1,1,1,1,1,1
DATA 0,0,1,1,1,1,1,1,1
DATA 0,1,0,1,1,1,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 1,1,1,0,0,0,1,1,1
DATA 0,1,1,1,1,1,1,1,0
DATA 0,0,1,1,1,1,1,0,0
DATA 0,0,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0

REM colon
DATA 0,0
DATA 0,0
DATA 0,0
DATA 0,0
DATA 0,0
DATA 0,0
DATA 1,1
DATA 1,1
DATA 0,0
DATA 0,0
DATA 0,0
DATA 1,1
DATA 1,1
DATA 0,0
DATA 0,0
DATA 0,0
DATA 0,0
DATA 0,0
DATA 0,0

----------------------------------------ScreenShot------------------------------



Matrix Clock Matrix Clock
Vezi profilul utilizatorului Trimite mesaj privat

Matrix Clock
 Pagina de start a forumului http://alpha-thema-online.uv.ro » Exemple Coduri
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Ora este GMT + 3 ore  
Pagina 1 din 1  

  
  
 Creaza un subiect nou  Raspunde la subiect  


Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
    Powered by phpBB © 2001-2004 phpBB Group. phpBB Skin by Vjacheslav Trushkin.