私の数学はさびていますが、線形方程式は一般にy = m * x + bとして表されます。ここで、mは傾き、bはy切片です。y値の差を取り、それをx値の差で割ることにより、傾きであるmを取得できます。たとえば、A =(2,2)およびB =(4,3)の場合、mは( 3-2)/(4-2)または0.5。次に、bの線形方程式、y切片、つまりb = ym * xを解いてから、いずれかのデータポイントをプラグインします。たとえば、ポイントAのx値とy値をプラグインすると、b=が得られます。 2-0.5 * 2 =1。これで、傾きm(この例では0.5)とy切片b(この例では1)がわかったので、y = m*xを使用して任意のx値のyを計算できます。 + b、この場合はy = 0.5 * x+1。
したがって、touchedPointとfixedPointがCGPointの場合、fixedPointとtouchedPointから次のように傾きとy切片を計算できます。
double m = (fixedPoint.y - touchedPoint.y) / (fixedPoint.x - touchedPoint.x);
double b = fixedPoint.y - m * fixedPoint.x;
さて、あなたはこの3番目の点Cがどこにあるかをどのように決定したいかを言いません。ただし、たとえば、この新しい点Cのx座標を知っている場合は、次のように同じ線上にあるy座標を計算できます。
CGPoint pointC;
pointC.x = 400; // or set this to whatever you want
pointC.y = m * pointC.x + b;