Я пытаюсь нарисовать множество квадратов, но изначальные квадраты (0,0) изначально были в верхнем левом углу, и мне нужны квадраты для рендеринга из нижнего правого угла, , и я нашел это код для перевода координат, но ничего не оказывает на winform.Отразить координаты при рисовании набора прямоугольников
Я знаю, что я ошибся в атрибуте Height TranslateTransform. Я не понимаю, почему требуется высота, поскольку я пытаюсь нарисовать набор из 2d квадратов.
Я пробовал hardcoding атрибут высоты, который все еще не используется.
public void ScaleTransformFloat(PaintEventArgs e,List<Square> lstSquare)
{
int Height = 10;
// Begin graphics container
GraphicsContainer containerState = e.Graphics.BeginContainer();
// Flip the Y-Axis
e.Graphics.ScaleTransform(1.0F, -1.0F);
// Translate the drawing area accordingly
//
e.Graphics.TranslateTransform(0.0F, -(float)Height);
// Whatever you draw now (using this graphics context) will appear as
// though (0,0) were at the bottom left corner
//User-defined function to draw a square
DrawSquare(e,lstSquare);
// End graphics container
e.Graphics.EndContainer(containerState);
}
Метод рисовать набор квадратов
public void DrawSquare(PaintEventArgs e,List<Square> lstSquare)
{
foreach(Square s in lstSquare){
e.Graphics.DrawRectangle(Pens.Black, 0,0 ,s.m_Side, s.m_Side);
}
}
a) Не знаете, почему так сложно (и, возможно, так же неправильно) сделать вещи с преобразованием объекта Graphics, когда вы могли бы просто адаптировать код чертежа. б) DrawSquare рисует все на (0,0), независимо от того, что вы делали раньше, все квадраты сидят друг на друга. c) 10 пикселей для общей высоты, действительно? – TaW
На самом деле это мое первое задание в рисовании фигур. Первоначально все квадраты были визуализированы в левом верхнем углу, и я хотел, чтобы они отображались слева внизу.Я наткнулся на [link] (http://stackoverflow.com/questions/1485745/flip-coordinates-when-drawing-to-control)), который поможет мне отображать квадраты слева внизу. Но ничего не появляется. Я хотел знать, почему требуется высота, поскольку я рисую набор из 2d sqaure. – dilip
Высота не является высотой 3d. Это общая высота целевого элемента управления, на который вы хотите нарисовать. Изображение, переворачивающее лист бумаги сверху в верхнем левом углу. Теперь вам нужно переместить его. Но на каком расстоянии? Ответ: Размер бумаги .. – TaW