Как преобразовать фигуру из Directx в gdi+ с помощью C#

StackOverflow https://stackoverflow.com/questions/2146358

  •  23-09-2019
  •  | 
  •  

Вопрос

Я рисую круг в С#, используя DirectX. Мне нравится рисовать круг тех же размеров в С#, используя GDI. Это означает, что мне нравится конвертировать этот круг из DirectX в GDI.Есть ли какая-нибудь помощь для меня? Пожалуйста, дайте мне ответ. Как я могу это сделать. Есть ли для этого какой-либо алгоритм ........А также я даю входные данные для центра круга (x, y) в этом формате точек. но в gdi это формат пикселей. Итак, как я могу преобразовать точки DirectX в пиксели GDI +

Это было полезно?

Решение

Вот ссылка из MSDN, которая представляет Графика и рисование в Windows Forms.И вполне вероятно, что вам понадобится что-то похожее на:

public Form1()
{
    InitializeComponent();

    this.Paint += new PaintEventHandler(Form1_Paint);

    // This works too
    //this.Paint += (_, args) => DrawCircle(args.Graphics);  
}

void Form1_Paint(object sender, PaintEventArgs e)
{
    DrawCircle(e.Graphics);
}

private void DrawCircle(Graphics g)
{
    int x = 0;
    int y = 0;
    int radius = 50;

    // The x,y coordinates here represent the upper left corner
    // so if you have the center coordinates (cenX, cenY), you will have to
    // substract radius from  both cenX and cenY in order to represent the 
    // upper left corner.

    // The width and height represents that of the bounding rectangle of the circle
    g.DrawEllipse(Pens.Black, x, y, radius * 2, radius * 2);

    // Use this instead if you need a filled circle
    //g.FillEllipse(Brushes.Black, x, y, radius * 2, radius * 2);

}

После этого вы, возможно, захотите изучить методы двойной буферизации, несколько ссылок:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top