22-05-2008, 16:58
|
|
|
חבר מתאריך: 22.05.08
הודעות: 2
|
|
צריך עזרה בצייר עם באפר כפול ב #C
אני כותב אפליקציית ציור פשוטה ב #C עם באפר כפול
יש לי וקטור של וקטורים מסוג vector <vector<point>> point
בכל לחיצה ותזוזה עם העכבר אני מצייר קו (רצף נקודות שמקבלים מהעכבר)
בכל עזיבת העכבר (שחרור לחיצה) אני סוגר אובייקט ומכניס לוקטור הכללי ופותח אובייקט חדש
ניסיתי להריץ את התוכנית והוא בכל פעם מצייר רק את האוובייקט הנוכחי (זה שאני מצייר כרגע עם הלחיצה על העכבר) והייתי רוצה לצייר את כל הקווים האלו.
להלן קטע הקוד שעובר סידרתית ומצייר
if (_mousereleesed == true) {
System.Console.WriteLine("mouse rellesed");
_mousereleesed = false;
_vectorOfVectors.Add(_vector);
_vector.Clear();
}
for(int pointVec = 0; pointVec < _vectorOfVectors.Count; pointVec++)
{
_vector = ((ArrayList)(_vectorOfVectors[pointVec]));
if (_vector.Count > 1)
{
Point[] pa = newPoint[_vector.Count];
for (int i = 0; i < _vector.Count; i++)
{
pa[i] = newPoint(((PointP)(_vector[i])).x, ((PointP)(_vector[i])).y);
}
_g.DrawLines(_pen, pa);
}
}
_repaint = false;
_saved = false;
}
buffer = newBitmap(this.Size.Width, this.Size.Height);
buferGraphic = Graphics.FromImage(buffer);
realGraphic = this.CreateGraphics();
}
|