On 24/06/2018 19:36, Abdur-Rahmaan Janhangeer wrote:
see for example

https://en.m.wikipedia.org/wiki/Bresenham%27s_line_algorithm

see the pseudocode, i was implementing some raster algos when i found
myself aux anges

so close to py. i guess it was written in prehistoric times with the author
trying to simplify stuffs

I'm sorry, but that kind of code is a mish-mash of old Algol/Pascal-style languages. I doubt it was meant to be Python.

Python doesn't have a monopoly on clear syntax.

This is the first example from that link (I've taken out comments):

 function line(x0, y0, x1, y1)
     real deltax := x1 - x0
     real deltay := y1 - y0
     real deltaerr := abs(deltay / deltax)
     real error := 0.0
     int y := y0
     for x from x0 to x1
         plot(x,y)
         error := error + deltaerr
         while error ≥ 0.5 then
             y := y + sign(deltay) * 1
             error := error - 1.0

This has some problems: it's using 'function' when it doesn't return a value (those languages used 'proc' or 'procedure' in that case). It doesn't give a type for the parameters, and it uses while/then rather than the usual while/do.

So it's rather sloppy even for pseudo code. The only similarity with Python is the lack of block delimiters, but then with later examples they /are/ used, for if-else-endif.

Below, the first block is that code tweaked to a static language of mine. The second is the same code tweaked to Python.

It was less work to adapt it my syntax rather than Python. All versions however use a decidedly un-Pythonic style, which means the difference between the two below isn't that great, even though they are different languages. But imagine trying to adapt Pythonic code to work in the other language; it would be much harder (apart from one being dynamic and the other not).

---------------------------------
 proc line(int x0, y0, x1, y1)=
     real deltax := x1 - x0
     real deltay := y1 - y0
     real deltaerr := abs(deltay / deltax)
     real error := 0.0
     int y := y0
     int x
     for x := x0 to x1 do
         plot(x,y)
         error := error + deltaerr
         while error = 0.5 do
             y := y + sign(deltay) * 1
             error := error - 1.0
         end
     end
 end
----------------------------------
def line(x0, y0, x1, y1):
     deltax = x1 - x0
     deltay = y1 - y0
     deltaerr = abs(deltay / deltax)
     error = 0.0
     y = y0
     for x in range(x0,x1+1):
         plot(x,y)
         error = error + deltaerr
         while error == 0.5:
             y = y + sign(deltay) * 1
             error = error - 1.0


--
bart
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to