ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
800118 Топик полностью
Evgeny_CD, Архитектор (06.12.2017 21:40 - 21:50, просмотров: 221) ответил Evgeny_CD на Что-то я смотрю на код и нифига не понимаю.
Говнокодеров спасла типизация в С.  else if (abs(x2-x1)>abs(y2-y1)) { delta=(double(y2-y1)/double(x2-x1)); // delta, которая double, присваивается значение double ty=double(y1); if (x1>x2) { for (int i=x1; i>=x2; i--) { drawPixel(i, int(ty+0.5)); ty=ty-delta; } } else { for (int i=x1; i<=x2; i++) { drawPixel(i, int(ty+0.5)); ty=ty+delta; } } } else { delta=(float(x2-x1)/float(y2-y1)); // delta, которая double, присваивается значение float, приведенное к double // - неявное преобразование типов // почему здесь нельзя было вызвать double(), как в основной ветке if? tx=float(x1); // tx, которая double, присваивается значение float, приведенное к double // - неявное преобразование типов if (y1>y2) { for (int i=y2+1; i>y1; i--) { drawPixel(int(tx+0.5), i); // drawPixel получает на вход 2 int, но функция приведения к int // получает на вход double tx=tx+delta; // double = double + double } } else { for (int i=y1; i<y2+1; i++) { drawPixel(int(tx+0.5), i); tx=tx+delta; } } }