MBS Plugin Documentation

Search:

Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchie

New in Version 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 9.0

The list of the   themes,   classes,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

FAQ.How to draw a nice antialiased line?
Feedback.

Answer:
This code can help you althrough it's not perfect.
You need to set lc to the current color you use.
Example:
Sub drawLine( xs as integer, ys as integer, xe as integer, ye as integer)
dim intX, intY, count, n, xDiff, yDiff as integer
dim v, v1, floatX, floatY, xx, yy, xStep, yStep as double
dim c as color

xDiff=xe-xs
yDiff=ye-ys
count=max(abs(xDiff), abs(yDiff))
xStep=xDiff/count
yStep=yDiff/count
xx=xs
yy=ys
for n=1 to count
intX=xx
intY=yy
floatX=xx-intX
floatY=yy-intY

v=(1-floatX)*(1-floatY)*st
v1=1-v
c=face.pixel(intX, intY)
face.pixel(intX, intY)=rgb(v*lc.red+v1*c.red, v*lc.green+v1*c.green, v*lc.blue+v1*c.blue)
v=floatX*(1-floatY)*st
v1=1-v
c=face.pixel(intX+1, intY)
face.pixel(intX+1, intY)=rgb(v*lc.red+v1*c.red, v*lc.green+v1*c.green, v*lc.blue+v1*c.blue)
v=(1-floatX)*floatY*st
v1=1-v
c=face.pixel(intX, intY+1)
face.pixel(intX, intY+1)=rgb(v*lc.red+v1*c.red, v*lc.green+v1*c.green, v*lc.blue+v1*c.blue)
v=floatX*floatY*st
v1=1-v
c=face.pixel(intX+1, intY+1)
face.pixel(intX+1, intY+1)=rgb(v*lc.red+v1*c.red, v*lc.green+v1*c.green, v*lc.blue+v1*c.blue)

xx=xx+xStep
yy=yy+yStep
next
End Sub

Notes: PS: st should be 1 and face should be a RGBSurface or a Graphics object.