class Sprite(object): """ A drawing surface, which can be moved around without destructing the background. Full example: .. doctest:: >>> import fbpy.fb >>> import fbpy.sprite """ __metaclass__ = Needmain def __init__(self, (x, y), (w, h)): self.surface = fb.Surface((x, y), (w, h)) self.backgr = fb.Surface((x, y), (w, h)) self.newstamp = None self.spritedata = [] self.oldR = (x, y) self.R = (x, y) self.backgr.keepbackground() self.oldstamp = self.backgr.get_raw()
def fckmybitchmup(cls): svg.Text((10,10),"loading png is also an option", 1.5, cls.midd) #time.sleep(2) cls.centor.blit("./cylonnoeye.png") cls.centor.update() #time.sleep(3) svg.Text((600,500),"and we can manipulate it", 0.8, cls.midd) svg.Text((600,520),"just like them other pix", 0.8, cls.midd) cls.main.update() #time.sleep(3) redeye = fb.Surface((230,400),(100,30)) shadow = fb.Surface((230,400),(100,30)) #redeye.blit('./eye.png') redeye.pixelstyle.blur = 2 redeye.pixelstyle.blurradius = 4 redeye.pixelstyle.sigma = 2 for i in range(1600): redeye.clear() shadow.clear() redeye.trafo.identity() redeye.trafo.rotate(-0.06*np.sin(i/1600.0*8*3.14)) redeye.pixelstyle.color.a = 245+7*np.cos(i/1600.0*16*3.14) redeye.origo = (230+90*np.sin(i/1600.0*8*3.14), 400 + 0*np.cos(i/1600.0*8*3.13)) redeye.blit('./eye.png') #redeye.arc((50,15),20,7,0,20,20) redeye.styledredraw() shadow.update() redeye.update() shadow.icopyu(redeye) if i%5==0: #cls.centor.grabsequence("/dev/shm/cylanim") pass time.sleep(3)
def __init__(self): self.win = fb.Surface() self.cwin = fb.Surface((10, 10), (600, 100)) self.win.clear() self.win.printxy((0.5, 0.9), "fb python iface by Noisegate 2014", 1) self.cwin.clear() self.win.update() self.cwin.update()
def __init__(self, x_y, w_h): x,y = x_y w,h = w_h self.surface = fb.Surface((x,y),(w,h)) self.backgr = fb.Surface((x,y),(w,h)) self.newstamp = None self.spritedata = [] self.oldR = (x,y) self.R = (x,y) self.backgr.keepbackground() self.oldstamp = self.backgr.get_raw()
def __init__(self,x_y,w_h): x,y = x_y w,h = w_h self.surface = fb.Surface((x,y),(w,h)) self.x_ = x self.y_ = y self.w_ = w self.h_ = h self.graticule = None self.jacky = jack.Jackaudio() self.leftchannel = None self.rightchannel = None self.updateinterval = 0.05 self.background() self.timeax=None self.leftoffset = 0.25 self.rightoffset = 0.75 self.leftamplitudo = 0.15 self.rightamplitudo = 0.15 self.amplitude_ = 0.15 self.offset_ = 0.25 self.mode_ = [1] self.mode = Scopemodes(self.mode_) self.mode.scope self.thread = Threaded(self.loop) self.looping = True self.stepsize_ = 10 self.color = self.surface.pixelstyle.color
class Scope(object): """ Scope class Virtual scope, using jack and fb, for visualization of audiostream. .. code-block:: python scope = Scope((0,0),(100,100)) scope.start() scope.amplitude = 0.1 scope.offset = 0.3 scope.mode.scope scope.mode.phase scope.stop() .. image:: ./images/scope.png """ __metaclass__ = Needmain def __init__(self, (x, y), (w, h)): self.surface = fb.Surface((x, y), (w, h)) self.x_ = x self.y_ = y self.w_ = w self.h_ = h self.graticule = None self.jacky = jack.Jackaudio() self.leftchannel = None self.rightchannel = None self.updateinterval = 0.05 self.background() self.timeax = None self.leftoffset = 0.25 self.rightoffset = 0.75 self.leftamplitudo = 0.15 self.rightamplitudo = 0.15 self.amplitude_ = 0.15 self.offset_ = 0.25 self.mode_ = [1] self.mode = Scopemodes(self.mode_) self.mode.scope self.thread = Threaded(self.loop) self.looping = True self.stepsize_ = 10 self.color = self.surface.pixelstyle.color
class Welcome(object): main = fb.Surface() midd = fb.Surface((0, 0), (800, 300)) scrn = None @classmethod def curses(cls): cls.scrn = curses.initscr() curses.cbreak() cls.scrn.addstr(10, 10, "computer up...") @classmethod def helloworld(cls): print subprocess.check_output(["clear"]) cls.midd.pixelstyle = fb.Pixelstyles.faint tekst1 = svg.Text((10, 10), "initializing fbpy 01", 1.5, cls.midd) cls.midd.update() @classmethod def enough(cls): curses.endwin() fb.Surface.close()
class Welcome(object): main = fb.Surface() midd = fb.Surface((10,10),(800,300)) centor = fb.Surface((80,80),(640,640)) scrn = None @classmethod def setup(cls): cls.scrn = curses.initscr() cls.midd.clear() cls.main.clear() curses.cbreak() @classmethod def curses(cls, message, r,c, align): cls.scrn.clear() cls.scrn.addstr(10,10,"computer up...") for i,s in enumerate(message.splitlines()): if align == 'center': s=s.center(70) for j, kar in enumerate(s): cls.scrn.addstr(r+i,c+j,kar) time.sleep(.02) cls.scrn.refresh() time.sleep(0.2) cls.centor.clear() cls.centor.keepbackground() cls.centor.update() @classmethod def helloworld(cls): cls.main.clearscreen() cls.main.update() cls.midd.pixelstyle = fb.Pixelstyles.faint cls.midd.pixelstyle.color.a = 130 #cls.midd.rect((0.01,0.01),(0.99,0.99)) cls.midd.update() tekst1 = svg.Text((10,10),"invoking svg module", 1.5, cls.midd) time.sleep(.1) tekst2 = svg.Text((10,34),"now showing the svg submodules Text class", 1.5,cls.midd) time.sleep(.1) tekst3 = svg.Text((10,58),"These characters are svg of 200x200 px rendered",1.5,cls.midd) time.sleep(.1) tekst4 = svg.Text((10,82),"by the polys functionality of fb",1.5,cls.midd) cls.midd.update() time.sleep(2) sprite = cls.midd.get_raw() for i in range(1,300,2): cls.midd.origo = (i,i) cls.midd.set_raw(sprite) cls.midd.clearframebuffer() cls.midd.update() time.sleep(2) for i in range(150): cls.midd.pixelstyle.sigma = 1 cls.midd.pixelstyle.blur = 2 cls.midd.pixelstyle.blurradius = 1 cls.midd.pixelstyle.color.a = 170+((255-170)*i/150.0) cls.midd.informdriver() cls.midd.styledredraw() cls.midd.update() @classmethod def blurrit(cls): cls.main.clear() cls.main.keepbackground() cls.main.pixelstyle.color = fb.Color(20,20,20,10) cls.main.pixelstyle.blur = 2 cls.main.pixelstyle.blurradius = 1 cls.main.pixelstyle.sigma = 1 cls.main.styledredraw() cls.main.update() cls.countdown(5) @classmethod def rotit(cls): R = fb.Trafo() S = fb.Trafo() R.rotate(0.01) S.stretch(0.9, 0.9) cls.main.pixelstyle.blur = 0 cls.main.trafo *=R cls.main.trafo *=S sprite = cls.main.get_raw() domeen = np.linspace(0.02, 0.06, num = 30) for i in domeen: R.rotate(i) cls.main.trafo *= R cls.main.trafo *= S cls.main.clear() cls.main.set_raw(sprite) cls.main.styledredraw() #cls.main.clearscreen() cls.main.update() cls.main.clearscreen() @classmethod def fckmybitchmup(cls): svg.Text((10,10),"loading png is also an option", 1.5, cls.midd) #time.sleep(2) cls.centor.blit("./cylonnoeye.png") cls.centor.update() #time.sleep(3) svg.Text((600,500),"and we can manipulate it", 0.8, cls.midd) svg.Text((600,520),"just like them other pix", 0.8, cls.midd) cls.main.update() #time.sleep(3) redeye = fb.Surface((230,400),(100,30)) shadow = fb.Surface((230,400),(100,30)) #redeye.blit('./eye.png') redeye.pixelstyle.blur = 2 redeye.pixelstyle.blurradius = 4 redeye.pixelstyle.sigma = 2 for i in range(1600): redeye.clear() shadow.clear() redeye.trafo.identity() redeye.trafo.rotate(-0.06*np.sin(i/1600.0*8*3.14)) redeye.pixelstyle.color.a = 245+7*np.cos(i/1600.0*16*3.14) redeye.origo = (230+90*np.sin(i/1600.0*8*3.14), 400 + 0*np.cos(i/1600.0*8*3.13)) redeye.blit('./eye.png') #redeye.arc((50,15),20,7,0,20,20) redeye.styledredraw() shadow.update() redeye.update() shadow.icopyu(redeye) if i%5==0: #cls.centor.grabsequence("/dev/shm/cylanim") pass time.sleep(3) #cls.centor.pixelstyle.blur = 2 #cls.centor.pixelstyle.blurradius = 3 #cls.centor.pixelstyle.sigma=1 #cls.centor.pixelstyle.color.a=230 #for i in range(15): # #cls.centor.trafo.rotate(0.03) # cls.centor.styledredraw() # cls.centor.update() @classmethod def sprites(cls): cls.main.clear() cls.main.update() cls.main.blit("./stars.png") cls.main.update() mysprite = sprite.Sprite((0,0),(150,157)) for i in range(160): mysprite.surface.clear() mysprite.surface.blit("./fighter_viper_mk1small.png") mysprite.surface.trafo.identity() mysprite.surface.trafo.rotate(6.28/160.0*i) mysprite.surface.styledredraw() mysprite.save() path1 = range(1400,400,-1) path2 = range(400,-150,-1) for x in path1: mysprite.moveto((x, 350),0) time.sleep(0.003) for ang in range(160): mysprite.moveto((400,350),ang) time.sleep(0.01) for x in path2: mysprite.moveto((x, 350),159) time.sleep(0.003) time.sleep(3) mysprite.hide() @classmethod def countdown(cls, t): for i in range(t): cls.scrn.addstr(30,40,"{0}".format(t)) time.sleep(1) @classmethod def enough(cls): curses.endwin() fb.Surface.close()
import fbpy.fb as fb import pdb if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((100, 100), (100, 100)) pdb.set_trace()
import fbpy.fb as fb import time main = fb.Surface() win = fb.Surface((100, 100), (300, 200)) win.pixelstyle = fb.Pixelstyles.faint win.pixelstyle.sigma = 2 win.pixelstyle.color.r = 3 win.pixelstyle.color.g = 3 win.pixelstyle.color.b = 3 for i in range(30): win.clear() print win.winsize win.snow() win.update() win.grabsequence("/dev/shm/snow") s = raw_input() main.close() win.close()
import fbpy.fb as fb import numpy as np import time if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((700, 300), (500, 500)) grid = fb.Surface((700, 300), (500, 500)) sub.dddtrafo.ez = 155 sub.dddtrafo.ex = -250 sub.dddtrafo.ey = -250 sub.dddtrafo.cx = 0 sub.dddtrafo.cy = 40 sub.dddtrafo.cz = 325 grid.dddtrafo.ez = 155 grid.dddtrafo.ex = -250 grid.dddtrafo.ey = -250 grid.dddtrafo.cx = 0 grid.dddtrafo.cy = 40 grid.dddtrafo.cz = 325 grid.pixelstyle.color = fb.Color(0, 100, 0, 0) mini = -50 maxi = 50 back = -50 front = 50 sub.addpoly([mini, maxi, maxi, mini, mini], [mini, mini, maxi, maxi, mini],
import fbpy.fb as fb from fbpy.obj import Ddd import numpy as np import time if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((1, 1), (679, 479)) sub.pixelstyle.color = fb.Color(10, 40, 10, 0) sub.pixelstyle.style = fb.Styles.solid sub.pixelstyle.blur = 1 sfeer = Ddd('./sphere0.obj', 200) sfeer.open() spacecraft = fb.DDDObject(sfeer.x, sfeer.y, sfeer.z, sub) sub.dddtrafo.ex = -250 sub.dddtrafo.ey = -250 sub.dddtrafo.tetax = 0.0 sub.dddtrafo.tetay = 0.0 sub.dddtrafo.ez = 155 sub.dddtrafo.cz = 400 #camera for i in np.arange(0, 6 * np.pi, 0.01): sub.dddtrafo.tetax = i * 3 sub.dddtrafo.ctetay = -(i) sub.dddtrafo.cx = -450 * np.sin(i) sub.dddtrafo.cz = 450 * np.cos(i) sub.dddtrafo.cy = 180 sub.clear() spacecraft.draw()
#test drawing while keeping background... import fbpy.fb as fb import time if __name__ == "__main__": main = fb.Surface() window = fb.Surface((100, 100), (400, 400)) window.store() for r in range(0, 100): window.clear() window.restore() window.circle((0.5, 0.5), r / 200.0, 100, fb.Colors.grey, fb.Styles.solid) window.update() time.sleep(0.01) fb.Surface.close()
import fbpy.fb as fb import numpy as np import time if __name__ == '__main__': win = fb.Surface() win.clear() #win.fillrect((1,1),(1365,767)) win.update() subwin = fb.Surface((10, 10), (300, 300)) subwin2 = fb.Surface((400, 400), (200, 200)) subwin3 = fb.Surface((800, 400), (200, 200)) subwin4 = fb.Surface((410, 100), (800, 24)) #subwin.fillrect((0,0,0,0),(1.0,1.0)) backgrnd0 = subwin.get_raw() subwin.update() graticule = fb.Surface((400, 400), (200, 200)) graticule.clear() graticule.pixelstyle.colors = fb.Color(40, 40, 40, 0) graticule.pixelstyle.color = fb.Colors.darkgrey graticule.fillrect((0.0, 0.0), (1.0, 1.0)) graticule.pixelstyle.color = fb.Colors.grey graticule.graticule((0.0, 0.0), (1.0, 1.0)) sprite = graticule.get_raw() #subwin4.fillrect((0.0,0.0),(1.0,1.0)) backgrnd = subwin4.get_raw() subwin3.pixelstyle.blur = 2 subwin3.pixelstyle.blurradius = 2 subwin3.pixelstyle.sigma = 2
import fbpy.sprite import fbpy.fb as fb import numpy as np import time if __name__ == "__main__": #need it, else sprite will give typerror main = fb.Surface() timew = fb.Surface((0,0),(300,10)) sprite = fbpy.sprite.Sprite((0,0),(150,157)) sprite.surface.clear() sprite.surface.blit("./fighter_viper_mk1small.png") sprite.save() for i in range(160): sprite.surface.clear() sprite.surface.blit("./fighter_viper_mk1small.png") sprite.surface.trafo.identity() sprite.surface.trafo.rotate(6.28/160.0*i) sprite.surface.styledredraw() sprite.save() main.keepbackground() main.blit("./stars.png") main.update() tnull = time.time() #make it move and debug
import fbpy.fb as fb import numpy as np import time if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((0, 0), (300, 300)) sub.dddtrafo sub.dddtrafo.ez = 155 sub.dddtrafo.ex = -100 sub.dddtrafo.ey = -100 sub.dddtrafo.cx = 0 sub.dddtrafo.cy = 0 sub.dddtrafo.cz = 325 mini = -100 maxi = 100 back = -100 front = 100 sub.addpoly([mini, maxi, maxi, mini, mini], [mini, mini, maxi, maxi, mini], [back, back, back, back, back]) sub.addpoly([mini, maxi, maxi, mini, mini], [mini, mini, maxi, maxi, mini], [front, front, front, front, front]) sub.addpoly([mini, mini, mini, mini, mini], [mini, mini, maxi, maxi, mini], [back, front, front, back, back]) sub.addpoly([maxi, maxi, maxi, maxi, maxi], [mini, mini, maxi, maxi, mini], [back, front, front, back, back])
import fbpy.fb as fb from fbpy.obj import Ddd import numpy as np import time if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((400,200),(500,500)) sub.pixelstyle.color = fb.Color(10,40,10,0) sub.pixelstyle.style = fb.Styles.solid sub.pixelstyle.blur=1 objdata = Ddd('./grid0.obj',100) objdata.open() grid = fb.DDDObject(objdata.x, objdata.y,objdata.z, sub) grid.tetax = 0 grid.tetay = 0 grid.tetaz = 0 grid.dx = 00 grid.dy = 0 grid.dz = 0 objdata = Ddd('./cube0.obj',100) objdata.open() cube = fb.DDDObject(objdata.x,objdata.y,objdata.z,sub) cube.dx=200 cube.tetay=1.2 cube.dy = 150 objdata = Ddd('./sphere0.obj',100) objdata.open() sphere = fb.DDDObject(objdata.x,objdata.y,objdata.z,sub)
import fbpy.fb as fb import numpy as np import time if __name__ == '__main__': win = fb.Surface() win.clear() win.update() subwin2 = fb.Surface((10, 200), (200, 200)) subwin3 = fb.Surface((300, 200), (200, 200)) subwin4 = fb.Surface((110, 100), (600, 24)) graticule = fb.Surface((200, 200), (200, 200)) graticule.clear() graticule.pixelstyle.colors = fb.Color(40, 40, 40, 0) graticule.pixelstyle.color = fb.Colors.darkgrey graticule.fillrect((0.0, 0.0), (1.0, 1.0)) graticule.pixelstyle.color = fb.Colors.grey graticule.graticule((0.0, 0.0), (1.0, 1.0)) sprite = graticule.get_raw() backgrnd = subwin4.get_raw() subwin3.pixelstyle.blur = 2 subwin3.pixelstyle.blurradius = 2 subwin3.pixelstyle.sigma = 2 subwin3.pixelstyle.color = fb.Color(10, 30, 30, 100) for j in range(1): t = np.arange(0, 1, 0.01, dtype=np.float) x = np.cos(2 * t * 2 * np.pi) * 0.5 + 0.5 for i in range(600):
import fbpy.fb as fb #In this example I show the abilty of surface #gemoetries to accept scaled coordinates and #absolute coordinates, or a combination. if __name__ == "__main__": main = fb.Surface() #make a subwindow window = fb.Surface((400, 400), (200, 200)) #show it window.clear() window.rect((0.0, 0.0), (1.0, 1.0), fb.Colors.white, fb.Styles.solid) window.update() #now we want to draw an inner rect precicely #two pixels away from the outer. #scaled coordinates are not so convenient for #this purpose... window.rect((2, 2), (197, 197), fb.Colors.white, fb.Styles.solid) window.update() #using integers will tell the Surface object #we want to use pixel coordinates #floats will invoke the automatic scaler... s = raw_input("hit enter to close") fb.Surface.close()
import fbpy.fb as fb import fbpy.jack as jack import time if __name__ == '__main__': main = fb.Surface() surf = fb.Surface((1000,15),(204,204)) surf.graticule((0.0,0.0),(1.0,1.0)) sprite = surf.get_raw() ja = jack.Jackaudio() ja.jackon() while 1<2: ja.jackread() ja.dataL x=[] yL=[] yR=[] j=0 for i,a in enumerate(ja.dataL): if (i % 5 == 0): j = j+1 x.append(j) yL.append(int(a*20)+80) yR.append(int(ja.dataR[i]*20)+120) surf.clear() surf.set_raw(sprite) surf.poly(x, yL) surf.poly(x, yR) surf.rect((0.0,0.0),(1.0,1.0)) surf.update()
uptime = subprocess.check_output(['uptime']) dummy = temp.splitlines() self.temp1 = dummy[2] self.temp2 = dummy[3] dummy = uptime.split(",") self.uptime = ".".join([dummy[-3], dummy[-2], dummy[-1]]) return 0 if __name__ == "__main__": systeminfo = Systeminfo() main = fb.Surface() win = fb.Surface((main.width - 300, 0), (300, 42)) while (True): grey = fb.Colors.grey darkgrey = fb.Colors.darkgrey grey.alpha = 100 darkgrey.alpha = 4 try: win.clear() win.printxy((2, 2), time.ctime(), 1) systeminfo.update() win.printxy((2, 12), systeminfo.temp1, 1)
import fbpy.fb as fb from fbpy.obj import Ddd import numpy as np import time if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((1, 1), (270, 270)) sub.pixelstyle.color = fb.Color(10, 40, 10, 100) sub.pixelstyle.style = fb.Styles.solid sub.pixelstyle.blur = 1 print "1" sfeer = Ddd('./sphere.obj', 30) sfeer.open() print "2" spacecraft = fb.DDDObject(sfeer.x, sfeer.y, sfeer.z, sub) sub.dddtrafo.ex = -25 sub.dddtrafo.ey = -25 sub.dddtrafo.tetax = 0.0 sub.dddtrafo.tetay = 0.0 sub.dddtrafo.ez = 155 sub.dddtrafo.cz = 40 #camera print "3" for i in np.arange(0, 6 * np.pi, 0.01): sub.dddtrafo.tetax = i * 3 sub.dddtrafo.ctetay = -(i) sub.dddtrafo.cx = -45 * np.sin(i) sub.dddtrafo.cz = 45 * np.cos(i)
import fbpy.fb as fb import time if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((300,300),(400,400)) R = fb.Trafo() S = fb.Trafo() sub.trafo.stretch(0.05,0.05) R.rotate(0.08) S.stretch(1.02,1.02) for i in range(1,1200): sub.clear() sub.trafo*=R if i<200: sub.trafo*=S if i==1199: sub.trafo.identity() sub.rect((0.4,0.4),(0.6,0.6)) sub.printxy((.4,0.5),"hahahahihi",1) sub.arc((0.5,0.5),60,40,0,100,100) sub.update()
import fbpy.fb as fb if __name__ == '__main__': main = fb.Surface() main.clear() main.blit("./cylon.png") main.pixelstyle.color = fb.Color(40, 40, 60, 100) main.pixelstyle.blur = 2 main.pixelstyle.blurradius = 4 main.pixelstyle.sigma = 1 main.printxy((0.3, 0.5), "fbpy: by your command...", 2) main.update() main.grab("byyrcmnd.png") fb.Surface.close() s = raw_input()
import fbpy.fb as fb if __name__ == '__main__': main = fb.Surface() sub = fb.Surface((0, 0), (800, 100)) sub.clear() sub.pixelstyle.color = fb.Color(40, 40, 40, 255) sub.fillrect((0.0, 0.0), (1.0, 1.0)) sub.pixelstyle = fb.Pixelstyles.sharp sub.pixelstyle.color = fb.Colors.darkgrey sub.printxy((10, 10), "Drawing in the framebuffer is fun!", 2) #sub.line((0,35),(800,35)) sub.pixelstyle = fb.Pixelstyles.faint sub.pixelstyle.blur = 2 sub.pixelstyle.blurradius = 8 sub.pixelstyle.sigma = 4 sub.pixelstyle.color = fb.Color(2, 2, 2, 200) sub.printxy((10, 10 + 24 + 3), "Drawing in the framebuffer is fun!", 2) sub.grabsilent("../Doc/source/images/test.png") main.close()