• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ピクセル座標で2点間の直線上の座標点をPHPで求める方法を教えてくださ)

ピクセル座標で2点間の直線上の座標点を求める方法【PHP】

このQ&Aのポイント
  • ピクセル座標で2点間の直線上の座標点をPHPで求める方法について解説します。指定された2つの座標点を直線で結んだ時のピクセル座標上の座標点(X.Y)を求めるためのアルゴリズムを説明します。
  • ピクセル座標の高さや幅の範囲内にある点Aと範囲外にある点Bを直線で結ぶ場合の、ピクセル座標上の座標点を求めるには、数式を使用します。具体的な数式や計算方法を詳しく説明します。
  • この質問では、ピクセル座標上の2つの座標点を直線で結ぶ場合の座標点を求める方法について説明しています。PHPを使用してアルゴリズムを実装し、結果を得ることができます。また、将来的にはC++に置き換えることも考えているようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

。。。単なる内分比の問題です。 点A = (Ax, Ay) 点B = (Bx, By) とし、求めたい点を 点P = (Px, Py) とします。 例1)Px = {(By - 30) * Ax + (30 - Ay) * Bx} / (- Ay + By) 例2)Py = (- Bx * Ay + Ax * By) / (Ax - Bx) [PHP] define ('Nx', 30); define ('Ny', 40); $a = array ('x' => ***, 'y' => ***); $b = array ('x' => ***, 'y' => ***); /* PHP 限定 C++ の場合は、if で地味に */ switch (true) { case $b['x'] < 0 : $p = interior_division($a, $b, array ($a['x'], - $b['x'])); break; case $b['x'] > Nx : $p = interior_division($a, $b, array (Nx - $a['x'], $b['x'] - Nx)); break; case $b['y'] < 0 : $p = interior_division($a, $b, array ($a['y'], - $b['y'])); break; case $b['y'] > Ny : $p = interior_division($a, $b, array (Ny - $a['y'], $b['y'] - Ny)); break; default : echo 'The condition is not satisfied.'; } function interior_division($a, $b, $r) { return array ( 'x' => ($r[1] * $a['x'] + $r[0] * $b['x']) / ($r[0] + $r[1]), 'y' => ($r[1] * $a['y'] + $r[0] * $b['y']) / ($r[0] + $r[1]) ); } [/PHP]

gree777
質問者

お礼

yuu_xさん 早々の回答ありがとうございました。 まさに求めていた回答でした。 早速試してみます。 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう