[Newbies] How to draw a single pixel with permanence?
Bert Freudenberg
bert at freudenbergs.de
Thu Apr 29 14:04:37 UTC 2010
On 29.04.2010, at 15:58, Lawson English wrote:
>
> Bert Freudenberg wrote:
>> On 29.04.2010, at 15:31, Lawson English wrote:
>>
>>> My point is, how do I "paint it" into a form
>>>
>>
>> colorAt:put: is okay for that (though slow).
>>
>>
>>> and then display it?
>>>
>>
>> See the Canvas protocol "drawing-images".
>>
>>
>>> my question concerns getting what I've poked into the form to stay on the screen after I've released the mouse.
>>>
>>
>> Whenever #drawOn: is called, you need to draw it again.
>>
>>
>>> Obviously I'm not caching the results as I thought I was.
>>>
>>
>> No, your just not drawing where you think you are. Again: you should not draw into the Canvas's form directly. Use the canvas protocol.
>> What's happening is that when you drag the morph in the hand, the canvas has a different transform than when it is resting in the world. Drawing directly into the canvas's form will ignore this transform. So it works sometimes but not always.
>>
>>
> drawOn: aCanvas
> super drawOn: aCanvas.
> aCanvas form colorAt: "self topLeft +"(30 at 30) put: Color black.
>
>
> Does NOT draw the dot at the upper left corner of the squeak window, but when I drag the morph around, the dot is offset as I would expect. When I release the mouse, the dot disappears.
>
> However:
>
> drawOn: aCanvas
> super drawOn: aCanvas.
> aCanvas form colorAt: self topLeft +(30 at 30) put: Color black.
>
> Draws the dot where I expected though it doesn't draw it during the mouse down.
Please read again what I wrote:
"What's happening is that when you drag the morph in the hand, the canvas has a different transform than when it is resting in the world. Drawing directly into the canvas's form will ignore this transform. So it works sometimes but not always."
> Also, why would the From>>colorAt:put: be slower than the Canvas drawing methods which are a good bit more indirect?
I did not compare it to canvas. Please, try to assume I meant it just as written ;)
- Bert -
More information about the Beginners
mailing list