Check the examples around Athens.

On Fri, Apr 6, 2018 at 4:48 PM,  <j...@boremaj.net> wrote:
>
> That worked, thank you so much! This helps me get running in the interim
> while i investigate how to use Athens.
>
>
> { jb }
>
> On Apr 6, 2018, 9:31 AM -0400, Nicolai Hess <nicolaih...@gmail.com>, wrote:
>
> Hi Joe,
>
> the problem is that the BalloonCanvas (or some objects it is using) aren't
> fully reset after some drawing operations.
> (the drawString method for example sets the sourceForm as glyph to be
> drawn).
>
> it should work if you do not store the canvas instance, but create a new in
> every loop:
>
>     points do: [ :p |
>
>        canvas := form getCanvas asBalloonCanvas aaLevel:4; yourself.
>
>        canvas drawPolygon: p
>           color: Color transparent
>           borderWidth: 1
>           borderColor: Color red.
>
>        canvas drawString: p first asString
>           at: p first
>           font: nil
>           color: Color green.
>     ].
>
>
>
>
> Or just reset the engine state (but I don't like this solution, the engine
> state should be private to the canvas).
>
>     points do: [ :p |
>
>        canvas drawPolygon: p
>           color: Color transparent
>           borderWidth: 1
>           borderColor: Color red.
>
>        canvas drawString: p first asString
>           at: p first
>           font: nil
>           color: Color green.
>        canvas resetEngine.
>     ].
>
>
>
>
>
> 2018-04-06 2:57 GMT+02:00 <j...@boremaj.net>:
>>
>> Hello everyone!
>>
>> Im trying use the balloon canvas to draw some nice smooth anti aliased
>> lines, but now i seem to have hit upon a bug which i dont know how to fix.
>>
>> if i draw just lines i get everything i want.  but if i add a
>> “drawString:…” in there at any point, all the lines i try to draw
>> subsequently dont show up.
>>
>> Here is code that shows the exact issue:
>>
>> form := Form extent: 100@100 depth: 32.
>> form fillWhite.
>> canvas := BalloonCanvas on: form.
>> canvas aaLevel: 4.
>> "canvas := FormCanvas on: form."
>> points := { {10@10 . 50@43} . {50@42 . 90@75} . {90@75 . 50@90 } }.
>>
>> points do: [ :p |
>>    canvas drawPolygon: p
>>       color: Color transparent
>>       borderWidth: 1
>>       borderColor: Color red.
>>
>>    canvas drawString: p first asString
>>       at: p first
>>       font: nil
>>       color: Color green.
>> ].
>>
>> morph := ImageMorph new.
>> morph image: form.
>> morph openCenteredInWorld.
>>
>>
>>
>> if i comment out the canvas drawstring i get what you would expect: a
>> squiggly line.
>>
>> if i add in the drawstring, the first line shows up but all the subsequent
>> lines do not get drawn.  (both images attached)
>>
>> I spent a bunch of time tracking it down to its most purest form and then
>> a bunch of time debugging it and im out of my depth with the baloon code, i
>> cant seem to figure out whats wrong.  if anyone knows whats wrong or can
>> give me a clue on how to fix it i’d greatly appreciate it.
>>
>> thanks in advance.
>>
>>
>> { jb }
>
>

Reply via email to