fillquad.py

Created by gianfranco-oddenino

Created on November 20, 2019

842 Bytes

Utility library for axonometry.py Requires fastgraph.py


from math import *
from kandinsky import *
from fastgraph import *

def vline(x,y1,y2,color):
  if y1>y2:
    for y in range(y2,y1):
      set_pixel(x,y,(255-color[0],255-color[1],255-color[2]))
  else:
    for y in range(y1,y2):
      set_pixel(x,y,color)

def fill(a,b,c,d,color):
  dy1=(d[1]-a[1])/(d[0]-a[0])
  dy2=(b[1]-a[1])/(b[0]-a[0])
  y1=y2=a[1]
  for x in range(a[0],d[0]):
    vline(x,round(y1),round(y2),color)
    y1+=dy1; y2+=dy2
  dy1=(c[1]-d[1])/(c[0]-d[0])
  for x in range(d[0],b[0]):
    vline(x,round(y1),round(y2),color)
    y1+=dy1; y2+=dy2
  dy2=(c[1]-b[1])/(c[0]-b[0])
  for x in range(b[0],c[0]):
    vline(x,round(y1),round(y2),color)
    y1+=dy1; y2+=dy2
  line(a[0],a[1],b[0],b[1],(0,0,0))
  line(b[0],b[1],c[0],c[1],(0,0,0))
  line(c[0],c[1],d[0],d[1],(0,0,0))
  line(d[0],d[1],a[0],a[1],(0,0,0))