Хочу сделать программу для работы с векторными шрифтами AutoCAD. Пишу пока в C++Builder. Не знаю как лучше выводить графику на форму. Пока рисую канвой (Canvas). Но это похоже на извращение. Дело в том, что все координаты на форме отсчитываются от левого верхнего угла, что конечно не удобно для меня. Хочется выводить от левого нижнего угла, независимо от размера формы. Или еще лучше указать базовую точку на форме и все координаты выводить от нее. Также хочу сделать программу максимально маленького размера и максимально быструю. Есть ли смысл делать не через Canvas? Как лучше вывести на форму необходимую графику. Какую литературу почитать на данную тему?
сделай переходные ф-ции, которые будут переводить координаты, удобные для тебя в координаты, используемые канвасом. Короче, Абстрагируй!
Делал примерно так: Код (Text): void __fastcall TForm1::MPaintBPaint(TObject *Sender) { MPaintB->Canvas->Pen->Color = clBlack; MPaintB->Canvas->Rectangle(0,0,MPaintB->ClientWidth,MPaintB->ClientHeight); //сетка MPaintB->Canvas->Pen->Color = clRed; for (i = 0; i < NLines; i++) { MPaintB->Canvas->MoveTo((i+1)*((MPaintB->ClientWidth-1) / (NLines+1)),MPaintB->ClientHeight); MPaintB->Canvas->LineTo((i+1)*((MPaintB->ClientWidth-1) / (NLines+1)),0); MPaintB->Canvas->MoveTo(0,(i+1)*((MPaintB->ClientHeight-1) / (NLines+1))); MPaintB->Canvas->LineTo(MPaintB->ClientWidth,(i+1)*((MPaintB->ClientHeight-1) / (NLines+1))); } MPaintB->Canvas->Pen->Color = clBlack; } но получается какой-то бред... дико не удобно. А по планам на всем этом еще и рисовать нужно будет.
Shoorup Рисуй в памяти, потом либо отображай на визуальный компонент (вроде TImage), либо используй DirectX.