dimanche 21 février 2016

FreeBASIC

I think freebasic should be the standart basic language for the education , free and very easy to use for the beginners and the students , runs very fast and it doesnt need a long lines of code to create a window application, you have just one simple instruction like "screen 13" , supports pointer object-oriented API win32 opengl... ,freebasic is also powerful able to develop 2D,3D games even for research and simulation...
I have created the following simulation program of  the motion of moon and earth around the sun this famous problem in physics is called The Three-Body Problem , my demo will show you how freebasic is useful for these kinds of complex applications


const Xres = 800
const Yres = 600

ScreenRes Xres, Yres, 8 ,2

const G = 6.726 * 10 ^ (-11)
const Ms = 1.989 * 10 ^ 30
const Mm = 7.3476 * 10 ^ 22
const Me = 5.97 * 10 ^ 24

const Dem = 384400*10^3
const Des = 149600000*10^3

Dim dt as DOUBLE, t as DOUBLE
Dim x as DOUBLE,
y as DOUBLE

Dim xe as DOUBLE , ye as DOUBLE ,phie as DOUBLE
Dim vxe as DOUBLE,
vye as DOUBLE 

Dim xm as DOUBLE, ym as DOUBLE, Phim as DOUBLE
Dim vxm as DOUBLE
, vym as DOUBLE 

Dim omegam as DOUBLE,omegae as DOUBLE
Dim r as DOUBLE,
res as DOUBLE,rsm as DOUBLE,rme as DOUBLE


dt = 60/2
xe = Des
ye = 0
omegae = 6.28/(365*24*60*60)
vxe = 0
vye = Des * omegae

xm = Des + Dem
ym = 0
omegam =6.28/(27.3*24*60*60)
vxm = 0
vym = Dem * omegam+vye


DO
screenset 1,0
CLS
res = (xe * xe+ ye* ye) ^ 1.5
rsm = (xm*xm + ym*ym)^1.5
rme = ((xe-xm)^2+(ye-ym)^2)^1.5

vxe = vxe - (G * Ms * xe / res - G * Mm * (xm - xe) / rme) * dt
vye = vye - (G * Ms * ye / res - G * Mm * (ym - ye) / rme) * dt

vxm = vxm - (G * Ms * xm / rsm + G * Me * (xm - xe) / rme) * dt
vym = vym - (G * Ms * ym / rsm + G * Me * (ym - ye) / rme) * dt

xe = xe + vxe * dt
ye = ye + vye * dt

xm = xm + vxm * dt
ym = ym + vym * dt

line (Xres/2-400,Yres/2)-(Xres/2+400,Yres/2),4
line (Xres/2,Yres/2-400)-(Xres/2,Yres/2+400),4

LOCATE 1: PRINT USING "time= ###.### Days"; t/(60*60*24)
LOCATE 2: PRINT USING "Earth velocity = ##.#### KM/S";(vxe^2+vye^2)^0.5/10^3

x = xe * 280 / Des + Xres/2
y = -ye * 280 / Des + Yres/2

circle (10^(-7)*(xm-xe)+x,-10^(-7)*(ym-ye)+y),3,3,,,,F
CIRCLE (Xres/2,Yres/2 ), 5, 14,,,,F
x = xm * 280 / Des + Xres/2
y = -ym * 280 / Des + Yres/2

circle (x, y),3,15,,,,F
screencopy 1,0
t = t+dt
LOOP UNTIL INKEY$ = CHR$(27)

END

vendredi 15 mai 2015

P.D.I special effects powered with FastDraw32 libary


effets matrix ,glow ,cartoon, reducecolor, echo... en temps réel sur une séquence vidéo extrait du film vampires suck ...

mardi 28 avril 2015

P.D.I version 2.0 (déformation 2D en temps réel ! ----- 1ère phase du développement )


Nome du projet : PDI ver 2.0 étant donné la version 1.0 (rendu software) je l'ai réalisé en 2003
Date de publication : 28/04/2015
Duré : une semaine
Langage C++
Compilateur Visual C++ 6.0
OS win32
Noyau du logiciel
- éditeur des points de control
- la triangulation de Delauney ( l'algorithme principale du logiciel et le plus complexe!)
- booster avec l'accélérateur graphique OpenGL 1.4 hardware

Résultat : déformation super fluide

Prochaine étape
capture de la vidéo et inclure la technologie pixel shader pour les transformations dans l'espace des couleurs afin de réaliser le morphing entre 2 images ou plus précisément deux vidéos et tout ça en temps réel...


samedi 4 avril 2015

un programme de simulation par ordinateur pour calculer la valeur de pi en utilisant la théorie des probabilités


le problème consiste à disperser N allumettes sur une table sur laquelle on a tracé des lignes horizontales équidistantes séparé par des distances deux fois la longueur d'une allumette, puis à chaque expérience on recense le nombres qui coupent les lignes , et on divise le nombre total par le nombres de cas favoris , la théorie prédit que ce rapport s'approche de la valeur de pi en augmentant N indéfiniment!


théorie

dP/d(teta) = L|sin(teta)|/D * 1/(2 pi)
probabilité qu'une allumette coupe l'une des lignes horizontales
P = intégral(dP,teta,0,2Pi) = 2L/(D*pi)
D = 2L
P = 1/pi
p = limite N->infini n(favoris)/N = 1/pi
N/(nfavoris) -> Pi = 3.1459.....

simulation

j'ai créé ce programme pour simuler cette expérience et le résultat est époustouflant , à un point que j'ai poussé l'expérience à simuler plus de 200 000 000 la précision de pi est de l'ordre de 0.0001 , voir la vidéo ...

2eme expérience :

 le cas ou les allumettes coupent simultanément les lignes  horizontales et verticales

dP/d(teta) = L|sin(teta)|/D *L|cos(teta)|/D * 1/(2 pi) = L²/D²|sin(2*teta))|*1/(4 pi) = 
P = intégral(dP,teta,0,2Pi) = L²/(D²*pi)
D = 2L
P = 1/(4*pi)




mercredi 18 septembre 2013

Makam Echahid 3D Wallpaper anime version 1.01

Release date : 18/09/2013
Size : 1.42 Mo APK
Version : 1.01
Plateform : Android 2.2
Programmer : Quantum
mail : DeltaFares@gmail.com
Description : For the first time you have the opportunity to enjoy a special application of the wallpaper anime which presents the famous monument  3d model visualized in real time
of "مقام الشهيد".  

Download : Here

 VIDEO DEMONSTRATION


mardi 17 septembre 2013

Pacific Data Image "Morphing"


Logiciel : PDI "Morphing" version 1.0  
Date : 2004/2005
Plateforme : windows 98/XP
Moteur graphique : FastDraw MMX (True Color 24bit direct access video memory ) 
Language de Programmation : C, Assembleur
Description : création d'effet visuels spécials programmables ,morphing , déformation etc ...

Télécharger un exemple du Moteur FastDraw : ici