는 내가 HTML 캔버스 당신이 그것을하지 않습니다 요소
을 수정할 수 있습니다 생각합니다. 내 HTML canvas tutorial을 확인하여 움직이는 공을 어떻게 그려야하는지 확인할 수 있습니다. 화면을 지우고 원하는 자리에 새로운 원을 그립니다.
pyglet, pygame, QT, Tkinter, wxPython 및 cairo 모두에서 간단한 모양을 캔버스에 그릴 수 있습니다.
일반적으로 화면에 그려지는 객체를 나타내는 "스프라이트"또는 "도형"이라고하는 객체가 있으며이 객체를 모두 컨테이너에 저장합니다. 그런 다음 라이브러리 나 프레임 워크는 모든 프레임에서 캔버스에 모든 것을 렌더링합니다.따라서 사용자 (사용자)는 화면에서 오브젝트를 수정할 수 있다고 생각합니다. 당신은 볼의 x와 y 좌표를 설정하고 다음 프레임에서 볼을 렌더링합니다. 그러나 낮은 수준에서는 모든 것이 지워지고 다시 그려집니다.
계산 집약적 인 애니메이션의 경우 double-buffering이라는 기술을 사용하여 화면상의 비트 맵 대신 메모리의 비트 맵을 수정 한 다음 드로잉 프로세스가 단순히 비트 맵을 화면에 복사하는 것입니다.
목록의 항목을 변경 한 다음 상당한 오버 헤드가있는 것처럼 보이는 새 캔버스를 만듭니다.
위에서 언급 한 모든 프레임 워크는 그릴 개체 목록에 대한 훌륭한 추상화를 제공하므로 수동으로 유지 관리 할 필요가 없으며 스프라이트/그려진 그림은 실제로 낮은 수준이 아닐지라도 화면에서 직접 이동할 수 있습니다.
"화면을 지우고 원하는 지점에 새로운 원을 그립니다."- 사실이지만 성능면에서 현저한 문제는 아닙니다. 나는 비슷한 것을했고, 대부분의 시간은 그림을 비교하는 것 (휘트니스를 평가하는 것)이 아니라 그림을 비교하는 것입니다. 페널티가 너무 커야해서는 안됩니다. – stefs
성능 문제가 아니라 캔버스에있는 요소를 수정할 수 없다는 말은 아닙니다. 당신은 변화된 것을 그려야 만합니다. – llimllib