cnc シミュレータに SDL (pygame) を使用しています。最初は、ペインターのアルゴリズムを使用して画面の更新が行われます (すべてを後ろから前に描画するだけです) が、大きなサーフェスではすぐに遅くなります。
再描画を高速化するために、特定の瞬間に変化する画面の部分のみを更新しているため、数値がその値を変更すると、その表面と、衝突するすべての表面の対応するサブ表面のみが再描画されます。
現時点では、衝突面を検出するために画面上のすべてに対してクリッピング テストを行っていますが、画面上のすべての面のテストを回避するためのデータ構造やアルゴリズムが必要だと思います。