Is a similarity map necessarily affine linear? My text on fractal geometry introduces the following definition:

A map $S: \mathbb R^n \to \mathbb R^n$ is called a similarity map if $$\exists c>0 \ \forall x,y \in \mathbb R^n: |S(x)-S(y)|=c|x-y|$$

I think that if we'd demand $S$ to be affine linear then $S$ is angle preserving, that is, $S=\tau_a \circ c L$ where $\tau_a$ means shifting by $a \in \mathbb R^n$, $L$ is orthogonal, and $c>0$ is a scaling factor.
But the definition doesn't require $S$ to be affine linear. Are there any non-affine-linear cases among similarity maps?
 A: by composing $S$ with $(1/c)Id$ we may assume w.l.o.g. that $c=1$. In this case:
1) $S$ is continuous and injective.
2) Define $L(v)=S(v)-S(0)$. Then $|L(v)|=|v|$.
3) $L$ preserves the scalar product. Indeed, by the initial condition
 $$|v|^2+|w|^2-2(v,w)=(v-w,v-w)=|v-w|^2=|L(v)-L(w)|^2=(L(v)-L(w),L(v)-L(w))=|L(v)|^2+|L(w)|^2-2(L(v),L(w))=|v|^2+|w|^2-2(L(v),L(w))$$
thus $(v,w)=(L(v),L(w))$ for any $v,w$.
Now we see that $L$ is linear.
4) By 3) we have, for any $v,w,u$: $(L(v+w),L(u))=(v+w,u)=(v,u)+(w,u)=(L(v),L(u))+(L(w),L(u))=(L(v)+L(w),L(u))$.
Thus 
$(L(v+w)-L(v)-L(w),L(u))=0$ for all $u,v,w$. Whence $L(v+w)-L(v)-L(w)$ is orthogonal to the image of $L$. The same holds for the multiplication by a scalar $\lambda$. 
5) if $L$ is onto, 4) ends the proof.
6) by the theorem of invariance of the domain $L$ is open and still 4) ends.
6.bis) denote by $W$ the span of the image of $L$. Then 4) implies that $L$ is linear from $\mathbb R^n$ to $W$. Since $L$ is injective this forces $W=\mathbb R^n$.
