[Edu-sig] turtle coordinates: Y increase downards - as in most graphics API?
Andre Roberge
andre.roberge at gmail.com
Tue Jun 19 14:20:48 EDT 2018
Is this Python's edu-sig or Monty Python's philosophers club? ;-) ;-) ;-)
Anyone on this list could probably do the following in less than one
minute...
Run the following program, showing how left() results in a proper turn left
>>> from turtle import *
>>> forward(40)
>>> left(90)
>>> forward(40)
Now, close the interpreter and run it again, this time with the following
>>> from turtle import *
>>> setworldcoordinates(-100, 100, 100, -100)
>>> forward(40)
>>> left(90)
>>> forward(40)
See how left() no longer correspond to a left() turn for the turtle?
André
=====
For those reading this on a device that does not have Python installed,
below, I show an ascii-simulated representation of
forward(100)
right(90)
forward(100)
when the turtle is oriented facing left initially, starting at the position
labeled by O and ending at X
(example chosen because it is the easiest for me to draw, regardless of
whether a proportional font is used or not for this email)
X
|
|
|
|
|
---------------O
In the current implementation, with a particular choice for user-defined
coordinates , the same instructions might yield the following
----------------O
|
|
|
|
|
X
i.e. a right() instruction would result in a left turn, and vice-versa.
On Tue, Jun 19, 2018 at 3:01 PM Kevin Cole <
kevin.cole at novawebdevelopment.org> wrote:
> On Tue, Jun 19, 2018 at 1:40 PM, Andre Roberge <andre.roberge at gmail.com>
> wrote:
>
>> HI,
>>
>> There seems to be a lot of misunderstanding about this issue. Hopefully,
>> the following can help clear it up.
>>
>> 0. The turtle module includes functions named left() and right() which
>> result in the turtle rotating in the corresponding direction on the screen.
>> 1. The turtle implementation includes a function, setworldcoordinates(),
>> which allows one to have user-defined coordinates (both for the width and
>> height of the world) including a choice as to which in which direction the
>> coordinates are increasing. The issue has nothing to do with what choice
>> is "best"; any user is free to use whatever they want.
>> 2. In the current implementation, if one choses some particular
>> orientation for the coordinates, the role of left() and right() are
>> inverted and no longer correspond to what the user sees on the screen.
>>
>> The submitted fix simply ensures that, no matter what one chooses for the
>> world coordinates via setworldcoordinates, when right() is called in a
>> program, the turtle turns right and not left.
>>
>> André
>>
>
> Ah. Then I did indeed misunderstand the point. And now I'm of two minds
> as to whether or not the fix is a fix. I see it as an option, but I also
> see the argument that sprites, avatars, turtles, etc, often are designed
> with a "head" and a "tail". So, it's back to the whole "stage left" vs.
> "left" argument: Are we talking about the virtual creature's left or the
> viewer's left? (Or am I misunderstanding yet again? If I'm not
> misunderstanding, I would say "Make it a configuration or startup option,
> or attribute of setworldcoordinates, or some such." For me, if I'm giving
> you directions to my apartment, and say in e-mail "Turn left" I would
> expect you to turn to your left, even if you knew which direction I was
> currently facing. I would expect an avatar to turn to its left regardless
> of my viewing angle.)
>
>
> --
> *Kevin Cole*
> <http://novawebdevelopment.org>
> NOVA Web Development Co-Op
> http://novawebdevelopment.org/
> Arlington, VA
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20180619/3b88b722/attachment-0001.html>
More information about the Edu-sig
mailing list