So when you write:
glTranslatef(1.0, 0.0, 0.0)
you change your coordinate system:
^ y ^ y
| -> |
| |
o-----> x o +-----> x
|< 1 >| |< 1 >|< 1 >|
(with "o" being the old origin)
= translate one unit along the x-axis
but when you do:
glScalef(2.0, 0.0, 0.0)
glTranslatef(1.0, 0.0, 0.0)
you get:
^ y ^ y
| -> |
| |
o-----> x o-----------> x
|< 1 >| |< 2 >|
= scale the x-axis by two
^ y
|
|
o +-----------> x
|< 2 >|< 2 >|
= translate one unit (= 2 global units because of the scale) along the x-axis
and when you do:
glTranslatef(1.0, 0.0, 0.0)
glScalef(2.0, 0.0, 0.0)
you get:
^ y ^ y
| -> |
| |
o-----> x o +-----> x
|< 1 >| |< 1 >|< 1 >|
= translate one unit along the x-axis
^ y
|
|
o +-----------> x
|< 1 >|< 2 >|
= scale the x-axis by two (notice that the distance to the origin doesn't change)