uj5u.com熱心網友回復:
x1,y1, x2,y2構成直線y = y1 + (y2-y1) / (x2-x1) * (x-x1) 其中 x1< x < x2
把(y2-y1)/(x2-x1)做成最簡分數a/b ,(x2-x1-1) / b 就是答案
考慮到, 有可能線段是一條垂直的線段, 所以要判別一下,如果是垂直的用另外一一組公式
x = x1 + (x2-x1) / (y2-y1) * (y-y1), 其中y1<x <y2
uj5u.com熱心網友回復:
int dx=x2-x1, dy=y2-y1;if (dx == 0 ) return dy-1;
if (dy == 0 ) return dx-1;
此時dx和dy都不是0了
計算 dx和dy的最大公因數c
return (dx-1)/ (dx/c);
或者
return (dy-1) /(dy/c);
uj5u.com熱心網友回復:
int dx=x2-x1, dy=y2-y1;if (dx == 0 ) return dy-1;
if (dy == 0 ) return dx-1;
此時dx和dy都不是0了
計算 dx和dy的最大公因數c
return (dx-1)/ (dx/c);
或者
return (dy-1) /(dy/c);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133567.html
標籤:C語言
上一篇:C語言請老師們指點。
