Compare commits
2 commits
6435128e22
...
b978f2e8cf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b978f2e8cf | ||
|
|
c7c145f0b1 |
2 changed files with 30 additions and 10 deletions
|
|
@ -42,13 +42,21 @@ sub filledPolygon (Points() as long, col as long)
|
|||
next y
|
||||
end sub
|
||||
|
||||
sub thickpixel(x,y,col as long)
|
||||
if state.brushsize=1 then
|
||||
pset(x,y),col
|
||||
else
|
||||
line(x-0.5 * state.brushsize,y-0.5 * state.brushsize)-(x+0.5 * state.brushsize,y+0.5 * state.brushsize),col,bf
|
||||
end if
|
||||
end sub
|
||||
|
||||
sub thickline(x1,y1,x2,y2, col as long)
|
||||
if state.brushsize=1 then
|
||||
line(x1,y1)-(x2,y2),col
|
||||
else
|
||||
dim tempimg as long
|
||||
dim od as long
|
||||
tempimg=_newimage(10,10,32)
|
||||
tempimg=_newimage(1,1,32)
|
||||
od =_dest
|
||||
_dest tempimg
|
||||
pset(0,0),col
|
||||
|
|
|
|||
30
pixler.bas
30
pixler.bas
|
|
@ -6,8 +6,8 @@ type statetype
|
|||
offsetY as long
|
||||
zoom as single
|
||||
brushsize as integer
|
||||
startX as integer
|
||||
startY as integer
|
||||
startX as long
|
||||
startY as long
|
||||
isDrawing as integer
|
||||
end type
|
||||
|
||||
|
|
@ -43,9 +43,9 @@ layers(2).ihandle=_newimage(320,320,32)
|
|||
layers(3).ihandle=_newimage(320,320,32)
|
||||
|
||||
_dest layers(0).ihandle
|
||||
addcommand "canvas ("+str$(_width)+","+str$(_height)+")"
|
||||
line (0,0)-(_width-1,_height-1),_rgb32(255),bf
|
||||
_dest 0
|
||||
|
||||
state.tool = 1
|
||||
state.zoom = 1.0
|
||||
state.offsetX = 70 + 20
|
||||
|
|
@ -129,8 +129,10 @@ canvas
|
|||
select case keyin
|
||||
case "+"
|
||||
state.brushsize=state.brushsize+1
|
||||
addcommand "brushsize ("+str$(state.brushsize)+")"
|
||||
case "-"
|
||||
if state.brushsize>1 then state.brushsize=state.brushsize-1
|
||||
addcommand "brushsize ("+str$(state.brushsize)+")"
|
||||
case chr$(19) ' ctrl+s
|
||||
'TODO: save logic
|
||||
case chr$(27)' esc
|
||||
|
|
@ -303,8 +305,8 @@ sub canvas
|
|||
dim r as integer
|
||||
|
||||
' 3. Calculate Canvas Coordinates
|
||||
dim canX as integer
|
||||
dim canY as integer
|
||||
dim canX as long
|
||||
dim canY as long
|
||||
canX = int((_mousex - state.offsetX) / state.zoom)
|
||||
canY = int((_mousey - state.offsetY) / state.zoom)
|
||||
|
||||
|
|
@ -370,8 +372,13 @@ sub canvas
|
|||
select case state.tool
|
||||
case 1 ' Pencil
|
||||
_dest layers(1).ihandle
|
||||
thickline state.startX, state.startY, canX, canY, drawCol
|
||||
addcommand "line ("+str$(state.startX)+","+ str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
||||
if canX=state.startX and canY=state.startY then
|
||||
thickpixel canX,canY,drawCol
|
||||
addcommand "pixel ("+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
||||
else
|
||||
thickline state.startX, state.startY, canX, canY, drawCol
|
||||
addcommand "line ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
||||
end if
|
||||
state.startX = canX: state.startY = canY
|
||||
case 2 ' Straight Line
|
||||
thickline state.startX, state.startY, canX, canY, drawCol
|
||||
|
|
@ -433,8 +440,13 @@ sub canvas
|
|||
'_putimage , layers(2).ihandle, layers(1).ihandle
|
||||
select case state.tool
|
||||
case 2 ' Line
|
||||
thickline state.startX, state.startY, canX, canY, drawCol
|
||||
addcommand "line ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
||||
if canX=state.startX and canY=state.startY then
|
||||
thickpixel canX,canY,drawCol
|
||||
addcommand "pixel ("+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
||||
else
|
||||
thickline state.startX, state.startY, canX, canY, drawCol
|
||||
addcommand "line ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
||||
end if
|
||||
case 3 ' Circle
|
||||
r = int(sqr((canX - state.startX)^2 + (canY - state.startY)^2))
|
||||
thickcircle state.startX, state.startY, r + 1, drawCol
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue