現実の世界で何をするか考えてみてください。ボールを線で切ることはできません。ナイフを使用する必要があります (線にはボリュームがありません)。ボールをカットするには、ナイフをボールに通さなければなりません。
つまり、あなたが見ているのは線ではなく平面です。このような平面を取得するには、3D 演算を使用する必要があります。あなたが持っているのは、キャンバスの向きと平面の「側面図」(線のように見える)です。
したがって、探している平面はキャンバスに対して垂直です。このような平面を取得する簡単な方法は、キャンバスの向きを取得して同じ向きの平面を作成し、線を中心に平面を 90° 回転させることです。
その後、モデルのすべてのエッジを調べて、それらが平面のどちら側にあるかを判断できます。このために、エッジの終点が平面のどちら側にあるかを決定します。外積を使用します。それらが同じ側にある場合 (外積の両方の結果が同じ符号を持つ)、エッジを無視できます。それ以外の場合は、エッジと平面の交点を決定する必要があります。新しいエッジを作成し、それに応じて接続します。
数学の背景については、このページを参照してください。しかし、opengl ライブラリでこれらすべてのヘルパー メソッドを見つける必要があります。
ボールを回転/移動すると、すべての頂点情報が変更されますか?
もちろん。