これはiOSの質問であり、現在、座標ジオメトリを実行することができません。線が通過する点として機能するCGPointと、ラジアン単位の角度が与えられます。画面の境界まで伸びる線(無限線)を描画するにはどうすればよいですか?
これを行うためにQuartz2dを使用していますが、線を作成するためのAPIは入力として2ポイントに制限されています。では、iOSデバイスの境界でポイントと角度を2つのポイントに変換するにはどうすればよいですか?
これはiOSの質問であり、現在、座標ジオメトリを実行することができません。線が通過する点として機能するCGPointと、ラジアン単位の角度が与えられます。画面の境界まで伸びる線(無限線)を描画するにはどうすればよいですか?
これを行うためにQuartz2dを使用していますが、線を作成するためのAPIは入力として2ポイントに制限されています。では、iOSデバイスの境界でポイントと角度を2つのポイントに変換するにはどうすればよいですか?
これは、単純な三角法から始まります。2点目のx座標とy座標を計算する必要があります。原点が0,0で、右にまっすぐ進む線を0度として扱い、反時計回り(一部の人は反時計回り)に進むと、次のようになります。
double angle = ... // angle in radians
double newX = cos(angle);
double newY = sin(angle);
これは半径1を想定しています。それぞれに目的の半径を掛けます。iPhoneの場合は480、iPadの場合は1024など、画面よりも大きい数値を選択します(ピクセルではなくポイントが必要な場合)。
次に、元のポイントを追加して、最終ポイントを取得します。
CGPoint start
、、および長さがあると仮定するとdouble angle
、最後のポイントは次のとおりです。
double endX = cos(angle) * length + start.x;
double endY = sin(angle) * length + start.y;
CGPoint end = CGPointMake(endX, endY);
終点が画面外にある場合は問題ありません。