// добавление точки в бд
        public void insertPoint(ImagePoint point)
        {
            try
            {
                SQLiteCommand cmd;
                sqlite.Open();
                cmd = sqlite.CreateCommand();
                string value = point.To_String();
                cmd.CommandText = "INSERT INTO Points (type, x, y, x1, y1) VALUES (" + value + ");";
                cmd.ExecuteNonQuery();

            }
            catch (SQLiteException ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message.ToString());
            }
            sqlite.Close();
        }
Beispiel #2
0
        private void draw(ImagePoint p)
        {
            Graphics g1 = Graphics.FromImage(settingPicture.Image);

            switch (p.t) // в зависимости от типа
            {
                case ImagePoint.type.point:
                    g1.DrawEllipse(pen, p.X_pos - 5, p.Y_pos - 5, 10, 10);
                    break;
                case ImagePoint.type.line:
                    g1.DrawLine(pen, p.X_pos, p.Y_pos, p.X_pos2, p.Y_pos2);
                    break;
                default:
                    break;
            }
            g1.Dispose();
            settingPicture.Invalidate();
        }
        // получение коолекции точек из бд
        public List<ImagePoint> getCollection()
        {
            List<ImagePoint> points = new List<ImagePoint>();
            DataTable dt = selectQuery("SELECT * FROM Points");

            for (int line = 0; line < dt.Rows.Count; line++)
            {
                ImagePoint p = new ImagePoint();
                p.t = (ImagePoint.type)Convert.ToInt32(dt.Rows[line][1].ToString());
                p.X_pos = Convert.ToInt32(dt.Rows[line][2].ToString());
                p.Y_pos = Convert.ToInt32(dt.Rows[line][3].ToString());
                p.X_pos2 = Convert.ToInt32(dt.Rows[line][4].ToString());
                p.Y_pos2 = Convert.ToInt32(dt.Rows[line][5].ToString());

                points.Add(p);
            }

            return points;
        }
Beispiel #4
0
        // мышь поднята
        private void settingPicture_MouseUp(object sender, MouseEventArgs e)
        {
            p2 = settingPicture.PointToClient(System.Windows.Forms.Cursor.Position); // получение второй координаты

            double xRatio = 1.0 * settingPicture.Width / settingPicture.Image.Width;
            double yRatio = 1.0 * settingPicture.Height / settingPicture.Image.Height;
            double ratio = xRatio < yRatio ? xRatio : yRatio;
            int halfX = settingPicture.Width / 2;
            int halfY = settingPicture.Height / 2;
            int halfImageX = settingPicture.Image.Width / 2;
            int halfImageY = settingPicture.Image.Height / 2;
            int x = (int)((double)(p.X - halfX) / ratio + halfImageX);
            int y = (int)((double)(p.Y - halfY) / ratio + halfImageY);
            int x2 = (int)((double)(p2.X - halfX) / ratio + halfImageX); // вычисление координат оносительно картинки
            int y2 = (int)((double)(p2.Y - halfY) / ratio + halfImageY);

            ImagePoint point = new ImagePoint(); // создание новой точки для коллекции
            if (x == x2 && y == y2) // если координаты равны
            {
                point.t = ImagePoint.type.point; // устанавливаем тип точка
            }
            else // если нет
            {
                point.t = ImagePoint.type.line; // то тип линия
            }
            point.X_pos = x;
            point.Y_pos = y; // утсановка координат у точки
            point.X_pos2 = x2;
            point.Y_pos2 = y2;
            points.Add(point); // добавление точки в коллекцию
            draw(point); // отрисовка
        }