Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
|
|
@ -0,0 +1,52 @@
|
|||
!YS-v0
|
||||
|
||||
defn main():
|
||||
draw-line: 0 1 10 2
|
||||
|
||||
defn draw-line(x0 y0 x1 y1):
|
||||
plot x0 x1 y0 y1 =:
|
||||
if abs(y1 - y0) > abs(x1 - x0): +
|
||||
[\(plot(y0 x0 x1)) y0 x0 y1 x1]
|
||||
[plot x0 x1 y0 y1]
|
||||
|
||||
x0 x1 y0 y1 =:
|
||||
if x0 > x1: +
|
||||
[x1 x0 y1 y0]
|
||||
[x0 x1 y0 y1]
|
||||
|
||||
dx =: x1 - x0
|
||||
dy =: y1 - y0
|
||||
gradient =: dy / dx
|
||||
|
||||
intery xends =:
|
||||
loop intery 0, xends [], [[x y] *xys] [[x0 y0] [x1 y1]]:
|
||||
xend =: round(x)
|
||||
yend =: y + (gradient * (xend - x))
|
||||
xgap =: rfpart(x + 0.5)
|
||||
|
||||
x-pixel =: xend
|
||||
y-pixel =: yend:to-int
|
||||
xends =: xends.conj(x-pixel)
|
||||
|
||||
plot: x-pixel y-pixel (rfpart(yend) * xgap)
|
||||
plot: x-pixel y-pixel.++ (fpart(yend) * xgap)
|
||||
intery |||=: yend + gradient
|
||||
|
||||
if xys.?:
|
||||
recur: intery, xends, xys
|
||||
vector: intery, xends
|
||||
|
||||
loop intery intery, [x *xs] (xends.0.++ .. xends.1.--):
|
||||
plot: x intery:I rfpart(intery)
|
||||
plot: x intery:I.++ fpart(intery)
|
||||
when xs.?:
|
||||
recur (intery + gradient): xs
|
||||
|
||||
defn plot(x y c):
|
||||
when c != 0.0:
|
||||
say:
|
||||
format 'plot %d %d %.1f': x y c:F
|
||||
|
||||
defn fpart(x): x - x:to-int
|
||||
|
||||
defn rfpart(x): 1 - fpart(x)
|
||||
Loading…
Add table
Add a link
Reference in a new issue