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:
Notes: PS: st should be 1 and face should be a RGBSurface or a Graphics object.
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, face as RGBSurface, lineColor as color)
dim intX, intY, count, n, xDiff, yDiff as integer
dim v, v1, floatX, floatY, xx, yy, xStep, yStep as double
dim c as color
const st=1.0
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*lineColor.red+v1*c.red, v*lineColor.green+v1*c.green, v*lineColor.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*lineColor.red+v1*c.red, v*lineColor.green+v1*c.green, v*lineColor.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*lineColor.red+v1*c.red, v*lineColor.green+v1*c.green, v*lineColor.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*lineColor.red+v1*c.red, v*lineColor.green+v1*c.green, v*lineColor.blue+v1*c.blue)
xx=xx+xStep
yy=yy+yStep
next
End Sub
Links
MBS REAL studio Chart Plugins - Nachhilfe in Eich