挙動から考えると、Z座標によってずれる幅が整数じゃないって感じですかね。X座標に加算してからドット単位にまるめられるから、X座標によっては1dotずれると。たとえばズレ幅が1.5なら、X=1.4の時は1ドット、X=1.6の時は2ドットずれるという風に:)