Esempio n. 1
0
def podzial_odcinka():
    a = 100.0
    b = (a ** 2 + (a / 2) ** 2) ** 0.5
    c = b - a / 2
    p = PS()
    p.translate(200, 200)
    p.newpath()
    p.moveto(0, 0)
    p.rline(a, 0)
    p.colour(1, 0, 0)
    p.stroke()

    p.newpath()
    p.moveto(a, 0)
    p.rline(c, 0)
    p.colour(0, 1, 0)
    p.stroke()

    p.newpath()
    p.moveto(0, 0)
    p.rline(0, a)
    p.rline(a, 0)
    p.rline(0, -a)
    p.moveto(a / 2, 0)
    p.rline(0, a)
    p.colour(0, 0, 0)
    p.stroke()

    p.newpath()
    p.moveto(a / 2, 0)
    p.line(a, a)
    p.dash()
    p.colour(0, 0, 0)
    p.stroke()

    p.newpath()
    a2 = math.degrees(math.atan(a / (a / 2)))
    p.arc(a / 2, 0, b, 0, a2)
    p.stroke()

    p.setfont()
    p.newpath()
    p.moveto(-5, -10)
    p.text("A")
    p.moveto(a / 2 - 5, -10)
    p.text("B")
    p.moveto(a - 5, -10)
    p.text("C")
    p.moveto(a + c - 5, -10)
    p.text("D")
    p.moveto(a - 5, a + 5)
    p.text("E")

    print p.gen()
    odcinek = open("odcinek.ps", "w")
    odcinek.write(p.gen())
    odcinek.close()
Esempio n. 2
0

def pole(a, b, c):
    return (b[0] - a[0]) * (c[1] - a[1]) - (c[0] - a[0]) * (b[1] - a[1])
n = int(raw_input("POdaj liczbe wierzcholkow: "))
w = []
for i in range(n):
    tmp = raw_input("Podaj w%d w formacie x,y np: 6,8: ")
    tmp = tmp.split(',')
    print tmp
    w.append((float(tmp[0].strip()), float(tmp[1].strip())))

suma = 0
for i in range(n - 1):
    suma += pole(w[0], w[i], w[i + 1])
suma /= 2.0
print suma
p = PS()
p.setfont()
p.translate(200, 200)
p.newpath()
p.moveto(*w[0])
for i in w:
    p.line(*i)
p.line(*w[0])
p.stroke()
p.moveto(0,-50)
p.text("Pole = %f" % suma)
with open("pole.ps", "w") as pole:
    pole.write(p.gen())