서클 오브젝트를 생성하여 속도로 화면에 놓고 테두리 내에서 바운스 시키려고합니다. 원 클래스를 설정할 수는 있지만 객체를 그리는 방법 (나중에 여러 개를 클릭하고 말하면 더 많은 원 객체를 얻을 수 있습니다)과 동작을 표시하려면 어떻게해야합니까?오브젝트를 만들고 이동하는 동안 페인트하는 방법은 무엇입니까?
답변
드로잉은 .NET (WFA, WPF 및 XNA 프레임 워크)에서 적어도 3 가지 방법으로 수행 할 수 있습니다. 이 대답을 위해 가장 간단한 WinForms 앱을 사용하고 있다고 가정합니다.
.NET에서 사용자 정의 모양을 그리거나 페인팅하는 작업은 Graphics
클래스를 사용하여 수행됩니다. 모든 폼 컨트롤에는 CreateGraphics()
메서드가 있습니다.이 메서드는 메서드를 호출 한 컨트롤의 크기와 위치가있는 화면의 "상자"에 대한 참조를 제공합니다. 그 Graphics
인스턴스를 사용하여 다양한 그리기 방법 (예 : DrawCircle()
)을 호출하여 화면에 도형을 넣을 수 있습니다. Pen
, Brush
및 Color
개체를 읽어야합니다. 원의 테두리, 채우기 및 색상을 정의 할 수 있습니다. 컨트롤의 OnPaint()
메서드에 드로잉 논리를 배치 할 것이고,이 메서드는 창에 다시 그리기를 요청할 때마다 호출됩니다. 일정한 간격으로 개체를 이동하려면 일정한 간격으로 Timer
을 설정하고 이동 논리를 수행 할 처리기로 Tick
이벤트를 구독하십시오. 이동을 한 후에는 그래픽 핸들이있는 컨트롤에서 Invalidate()
으로 전화하십시오. 컨트롤 자체가 다시 그려집니다. 그래픽을 전체 폼 또는 다른 중첩 컨트롤을 배치 할 컨트롤을 얻는 피할 것입니다. 자체를 다시 그리는 컨트롤은 중첩 된 모든 컨트롤에 다시 그리기를 지시하기 때문입니다. 양식 창에서 스팬을 차지하는 Panel
또는 PictureBox
은 사용자 지정 그래픽의 이동 방법입니다. BufferedGraphicsContext
개체를 사용하여 이중 버퍼링 그래픽을 구현하거나 에 대한 이미지로 설정 한 Bitmap
에서 사용자 정의 모양을 그려서 자신을 롤링하는 것도 고려해 볼 수 있습니다.
시작을하는 것은이
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawEllipse(new Pen(Color.Red), 0, 0, 100, 100);
}
- 1. 애니메이션을 사용하여 오브젝트를 이동하는 방법은 무엇입니까?
- 2. Tkinter 캔버스에서 오브젝트를 효율적으로 이동하는 방법
- 3. 마우스를 누르고있는 동안 양식을 이동하는 방법은 무엇입니까?
- 4. RichTextBox에 텍스트를 페인트하는 방법은 무엇입니까?
- 5. PHP에서 오브젝트를 병합하는 방법은 무엇입니까?
- 6. Windows.Forms에서 이미지를 페인트하는 가장 빠른 방법은 무엇입니까?
- 7. WPF-Shape을 수학적으로 페인트하는 방법은 무엇입니까?
- 8. 하위 컨트롤의 투명 영역을 페인트하는 방법은 무엇입니까?
- 9. 비트 맵을 원근감으로 페인트하는 방법은 무엇입니까?
- 10. 오브젝트를 추상화하는 우아한 방법은 무엇입니까?
- 11. UTL 파일을 통해 읽는 동안 커서를 new_line으로 이동하는 방법은 무엇입니까?
- 12. 텍스트보기를 이동하는 방법은 무엇입니까?
- 13. 애니메이션 풍선을 여러 개 페인트하는 방법은 무엇입니까? (Qt4.6)
- 14. 포인트에서 오브젝트를 가져 오는 방법은 무엇입니까?
- 15. 예외로 파일을 이동하는 방법은 무엇입니까?
- 16. 구조체를 클래스로 이동하는 방법은 무엇입니까?
- 17. BorderLayout을 사용하여 JPanel에서 오브젝트를 배치하는 방법은 무엇입니까?
- 18. 서로 다른 레이아웃 오브젝트를 스택하는 방법은 무엇입니까?
- 19. 3D 오브젝트를 동적으로 컬러링하거나 텍스처링하는 방법은 무엇입니까?
- 20. 디지털 이미지에서 일부 오브젝트를 연결하는 방법은 무엇입니까?
- 21. Gmail imap에서 휴지통으로 메시지를 이동하는 방법은 무엇입니까?
- 22. TreeView 노드 +/- 버튼을 트리 뷰 외부에 페인트하는 방법은 무엇입니까?
- 23. .exe에서 .ico를 추출하고 PyQt로 페인트하는 가장 좋은 방법은 무엇입니까?
- 24. winforms를 사용하여 C#에서 mouseclick에 공을 페인트하는 방법은 무엇입니까?
- 25. P2D 모드에서 완전 투명 픽셀/포인트를 페인트하는 방법은 무엇입니까?
- 26. 색상이 바뀌면서 Canvas에서 Android의 그래디언트 색상을 페인트하는 방법은 무엇입니까?
- 27. C#에서 LinearGradientBrush를 사용하여 정확한 그라데이션을 페인트하는 방법은 무엇입니까?
- 28. 효율적으로 MATLAB 이미지의 픽셀 목록을 페인트하는 방법은 무엇입니까?
- 29. 비트 맵에 페인트하는 법
- 30. Javascript를 사용하여 html 요소를 이동하는 방법은 무엇입니까?
이 특정 하위 주제의 많은 광범위한 질문의 종류 무승부 로직을 추가 할 수 있습니다. 질문을 분리하여보다 집중된 질문으로 나누고 싶을 수도 있습니다. – asawyer
WinForms, APS, WPF 또는 Silverlight를 사용하고 있습니까? –
이것은 WinForms에 있습니다. – akd