Siatka punktów od pewnego momentu generuje się nie równo

0

Tym razem mam problem z rysowanie na PictureBox

            pictureBox1.BackgroundImage = new Bitmap(Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "kartka.jpg"));
            canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            g = Graphics.FromImage(canvas);
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            GenerateField();

Rysuje sobie punkty:

        private void GenerateField()
        {
            Pen pen = new Pen(new SolidBrush(Color.Black), 2);
            Size s = new Size(2, 2);
            Point p = new Point();
            List<Point> points = new List<Point>();

            for (int i = 81; i < 607;)
            {
                for (int k = 31; k < 620;)
                {
                    p = new Point(i, k);
                    Rectangle r = new Rectangle(p, s);
                    g.DrawEllipse(pen, r);
                    points.Add(p);
                    k += 33;
                }
                i += 33;
            }

            pictureBox1.Image = canvas;

        }

W załączniku rezultat. Dlaczego od pewnego momentu i po osi X i po Y punkty są kopnięte? Czy to świadczy o tym, że kratki na obrazku w tle są nierówno?

0

a rozmiary kratek to na pewno 33x33?

0

Sprawdziłem to ręcznie na pierwszej kratce generując kropki ze statycznymi danymi a później na tej podstawie zrobiłem pętle. Gdyby wszystkie były nierówne to już od początku by się rozjeżdżało i pasowałby tylko pierwszy. Chyba, że to się przesuwa o jakąś 1/5 piksela i na początku nie widać.

1

Witaj,
Znalazłem obrazek z kratkami, pobrałem go i równo przyciąłem w Paint. Jest tam 16 kratek, zakładając, że odstępy między liniami są stałe, można uzyskać dokładną odległość dzieląc szerokość obrazka przez ilość kratek. Tak więc:

screenshot-20171124210828.png

Czy to świadczy o tym, że kratki na obrazku w tle są nierówno?

To może świadczyć o tym, że są nierówno. W twoim przypadku prawdopodobnie nie.

a rozmiary kratek to na pewno 33x33?

Szybki debug pokazał, że nie - jest to 33.5 (dlatego lepiej operować na double)

Pozdr.

0

obszar (kwadraty), gdzie masz kropki ma 503x570 pikseli. Jak dla mnie to ani x ani y nie dzieli się przez 33

0

Dzięki za pomoc ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1