[squeak-dev] The Trunk: Graphics-mt.404.mcz
karlramberg at gmail.com
Thu Dec 6 06:02:45 UTC 2018
Since the returned object is not known from the method name inflate, one
must read the method inflate: to get what is happening here.
That's my point of view. Pun intended. Ha ha
On Wed, Dec 5, 2018 at 11:44 PM Jakob Reschke <forums.jakob at resfarm.de>
> With #extent: and #corner: we "just know" that these are for creating
> Rectangles. Just like we have learned that the symbol + is not about two
> things crossing, but about adding things together, especially when it is
> surrounded by numbers. Creating a new "well-known" word from the very
> beginning is harder and you suddenly realize that all of the selectors
> without "rectangle" in their name only make sense when you assume a 2D
> graphics environment as the context, as opposed to, well, banking software,
> maybe? But since the class Point is for 2D coordinates in such an
> environment anyway, this can be justified.
> Maybe you should ask yourself how you would like the expression to read if
> it were the printString of the Rectangle. And when you think about it,
> switch on and off in your mind the assumption that you already know you are
> creating a rectangle when you evaluate the result. For #extent:, you have
> to assume that, don't you? Otherwise 5 at 5 extent: 10 at 10 could also be a
> circle... interestingly, then I would assume it to be centered at 5 at 5
> already. 5 at 5 corner: 10 at 10 seems less ambiguous to me. After all, circles
> don't have corners...
> (0 at 0 extent: 10 at 10) printString
> ==> '5 at 5 inflate: 10 at 10' ? Does not seem natural to me. This relates to
> Nicolas's verb vs. noun argument.
> ==> '5 at 5 surroundedBy: 10 at 10'
> ==> '5 at 5 inTheMiddleOf: 10 at 10' (well, misleading example... think of
> '50 at 50 inTheMiddleOf: 10 at 10' instead)
> ==> '5 at 5 amidst: 10 at 10'
> ==> '10 at 10 around: 5 at 5'
> ==> '10 at 10 withCenter: 5 at 5'
> ==> '10 at 10 centeredAt: 5 at 5'
> (repeating other's suggestions now, purposely uncommented)
> ==> '5 at 5 extendTo: 10 at 10'
> ==> '5 at 5 spreadTo: 10 at 10'
> ==> '5 at 5 spreadToExtent: 10 at 10'
> ==> '5 at 5 rectangleWithExtent: 10 at 10'
> ==> '10 at 10 asRectangleCentredAt: 5 at 5'
> ==> '5 at 5 centredRectangleWithExtent: 10 at 10'
> ==> '5 at 5 centredRectangleExtent: 10 at 10'
> Am Mi., 5. Dez. 2018 um 22:32 Uhr schrieb Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com>:
>> Le mer. 5 déc. 2018 à 16:59, Tm Jhnsn <digit at sonic.net> a écrit :
>>> On Dec 4, 2018, at 12:12 AM, marcel.taeumel wrote:
>>> > Yet, such an infix notation for rectangle creation would not be
>>> > much of an
>>> > improvement over Rectangle class >> center:extent:.
>>> > Very interesting. :-) Thoughts?
>>> Balloons inflate, and Smalltalk is quite associated with balloons... :)
>>> Tim J
>> But in this case, should deflate return the center ? (100 at 100 inflate:
>> 50 at 30) deflate.
>> I like spread because there is a kind of isotropic notion, we extend in
>> all directions...
>> The lexical field of symmetry may fit: we construct a rectangle by taking
>> those two vertices:
>> - image of aPoint by symmetry around myself,
>> - and aPoint.
>> So it's somehow a mirroring action:
>> centerPoint mirror: cornerPoint.
>> centerPoint reflect: cornerPoint.
>> We could also think of pivoting or unfolding in the 3rd dimension...
>> But I find the intention very hard to grasp... It's not obvious that the
>> message should answer a Rectangle rather than a Point.
>> And the meaning of argument slipped from extent to corner which is a
>> different action...
>> I note that inflate, spread, etc... are verbs, while corner: and extent:
>> are nouns...
>> We understand corner: and extent: because we may think of them as
>> attributes of a Rectangle... (or just because we're used to them?)
>> In this case, diagonal: may fit too, but the difference with extent: is
>> thin, and I don't find the notion of isotropic spread in it.
>> In fact, diagonal: might be to vertex:vertex: what corner: is to
>> origin:corner: because we can define a rectangle by any of its diagonals...
>> Geometrically, we may also see self and extentPoint as defining the
>> diagonal by a center and a diameter of circumscribing circle...
>> So its a kind of circumExtent: that we pass to the center... Not very
>> clear that it will answer a Rectangle...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev