Здравствуйте, vitz, Вы писали:
V>Здравствуйте, Repdiablo, Вы писали:
R>>Подскажите как сделать так чтобы у(ордината) в системе координат "смотрела" на верх
V>Если для системы координат окна, то в OnPaint делаешь примерно вот так:
V>V>protected override void OnPaint(PaintEventArgs e)
V> {
V> base.OnPaint (e);
V> Matrix m = new Matrix();
V> m.Translate(0,this.Size.Height);
V> m.Scale(1,-1);
V> e.Graphics.Transform = m;
V> // Рисуй на здоровье.
V> }
V>
Согласен, хотя по-моему в данном случае проще вызывать непосредственно Graphics.TranslateTransform() и Graphics.ScaleTransform() без предварительного создания временного Matrix'а и последующего его присваивания свойству Graphics.Transform.
А еще лучше сразу создать Matrix с инвертирующим преобразованием и присвоить его свойству Transform в одном вызове:
base.OnPaint (e);
e.Graphics.Transform = new Matrix(/* ... */);
// Рисуй (не менее) на здоровье.
Благо для этого у Matrix'а есть масса разнообразных конструкторов.