Есть функция:
Point pshift(Point pt1, Point pt2, uint32_t value)
{
float D = distance((Rect){pt1, pt2});
if (D == 0) return pt1;
Point result;
result.x = pt1.x + (value * (pt2.x - pt1.x)) / D;
result.y = pt1.y + (value * (pt2.y - pt1.y)) / D;
return result;
}
Приходят на вход значения:
p1 = (186, 92)
p2 = (362, 27)
value = 50
Почему?
Царя можете не вносить, все и так знают, что все, включая K&R не знают си.