Alexandre B A Villares 2018-05-13 00:05:18 -03:00
rodzic 4cab71a5a4
commit fc06d956d9
4 zmienionych plików z 198 dodań i 0 usunięć

62
s132/items.p 100644
Wyświetl plik

@ -0,0 +1,62 @@
(lp0
(i__main__
Theme
p1
(dp2
S'x'
p3
I50
sS'y'
p4
I22
sS'under_mouse'
p5
I00
sS'selected'
p6
I00
sS'content'
p7
S'sin.com'
p8
sba(i__main__
Theme
p9
(dp10
S'x'
p11
I79
sS'y'
p12
I58
sS'under_mouse'
p13
I00
sS'selected'
p14
I00
sS'content'
p15
S'mat.geo.coo'
p16
sba(i__main__
Theme
p17
(dp18
S'x'
p19
I273
sS'y'
p20
I18
sS'under_mouse'
p21
I00
sS'selected'
p22
I00
sS'content'
p23
S'pst.rcr'
p24
sba.

BIN
s132/s132.pmg.png 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 85 KiB

134
s132/s132.pyde 100644
Wyświetl plik

@ -0,0 +1,134 @@
# Alexandre B A Villares - https://abav.lugaralgum.com/sketch-a-day
SKETCH_NAME = "s132" # 180512
import pickle
LINE_SPACE = 22
ITEM_WIDTH = 80
ITEM_HEIGHT = 20
ITEMS, EDGES = [], []
ThemeS = ["sin.com",
"mat.geo.coo",
"pst.rcr",
]
def setup():
size(500, 500)
rectMode(CENTER)
textAlign(CENTER, CENTER)
textSize(10)
for t in ThemeS:
ITEMS.append(Theme(t))
def draw():
background(200)
for i in ITEMS:
i.update()
for e in EDGES:
e.update()
class Theme():
y_stack = 0
def __init__(self, content, x=50, y=None):
self.under_mouse = False
self.selected = False
self.x = x
if y == None:
Theme.y_stack += LINE_SPACE
self.y = Theme.y_stack
else:
self.y = y
self.content = content
def update(self):
self.move()
self.plot()
def move(self):
if self.mouse_over():
self.under_mouse = True
if keyPressed and keyCode == CONTROL:
self.x = mouseX - ITEM_WIDTH / 2
self.y = mouseY - ITEM_HEIGHT / 2
if keyPressed and keyCode == ALT:
self.selected = not self.selected
else:
self.under_mouse = False
def plot(self):
noFill()
if self.under_mouse:
B = 255
else:
B = 0
if self.selected:
R = 255
else:
R = 0
stroke(R, 0, B)
rect(self.x, self.y, ITEM_WIDTH, ITEM_HEIGHT)
fill(0)
text(self.content, self.x + 6, self.y + 3)
def mouse_over(self):
return (self.x < mouseX < self.x + ITEM_WIDTH and
self.y < mouseY < self.y + ITEM_HEIGHT)
class Link():
def __init__(self, a, b):
self.under_mouse = False
self.selected = False
self.a = a
self.b = b
def update(self):
self.plot()
def plot(self):
mx = (self.a.x + self.b.x) / 2
noFill()
bezier(self.a.x, self.a.y, mx, self.a.y,
mx, self.b.y, self.b.x, self.b.y)
def mousePressed():
if keyPressed and keyCode == SHIFT:
x, y = mouseX, mouseY
c = input('new item')
if c:
ITEMS.append(Theme(c, x, y))
def keyPressed():
if key == "l":
selected = [i for i in ITEMS if i.selected]
if len(selected) == 2:
a, b = selected
EDGES.append(Link(a, b))
if key == 's':
pickle.dump(ITEMS, open("items.p", "wb"))
print 'done s'
if key == 'l':
f = open("items.p", 'rb')
pickle.load(f)
print 'done l'
def input(message=''):
from javax.swing import JOptionPane
return JOptionPane.showInputDialog(frame, message)
# def mouse_over(self):
# return (self.x < mouseX < self.x + ITEM_WIDTH and
# self.y < mouseY < self.y + ITEM_HEIGHT)

Wyświetl plik

@ -0,0 +1,2 @@
mode=Python
mode.id=jycessing.mode.PythonMode