skalowanie figur geometrycznych

0

Hej
Chciałbym zrobić coś takiego. Wczytuje rysunek figury do Froma. Podaje skale tego rysunku, przy pomocy punktów przerysowuję figurę i dzięki temu obliczam jej pole.
Udało mi się zrobić punkty dzięki którym tworze figury. Problem jest z :
1.skalowaniem (skala jest np: 1:10,1:1000 itp:), nie wiem jak mam to zrobić. Od czego zacząć?
2.wczytywaniem zdjęcia do Froma. Wczytuje mi się , ale zdjęcie wychodzi poza panel, nawet go nie mogę powiększyć bo zdjęcie jest zbyt duże. Chciałem zrobić to w pictuerBox, ale tam mam problem z rysowaniem tych figur.

To mój kod

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace testowanie_powierzchni
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        const int punkt = 3;
        private List<Point> a_Points = new List<Point>();

        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            a_Points.Add(new Point(e.X, e.Y));

       
            this.Invalidate();
        }
     
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
          
            if (m_Points.Count >= 2)
            {
               
                e.Graphics.DrawPolygon(Pens.Blue, a_Points.ToArray());
            }

            
            if (m_Points.Count > 0)
            {
                foreach (Point pt in a_Points)
                {
                  
                    e.Graphics.FillRectangle(Brushes.Black, pt.X - punkt, pt.Y - punkt, punkt, punkt);
                   
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {

            var image = new System.Windows.Forms.OpenFileDialog();
            image.Filter = "";
            image.Title = "Select image";
            if (image.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                System.IO.FileInfo File = new System.IO.FileInfo(image.FileName);
                BackgroundImage = Image.FromFile(image.FileName);
            }
        }
    }
}

0

1.skalowaniem (skala jest np: 1:10,1:1000 itp:), nie wiem jak mam to zrobić. Od czego zacząć?

point.X = point.X / 10;
point.Y = point.Y / 10;
0

Problem rozwiązany

0

A jak zliczenie ilość pixeli na zaznaczonym obszarze ?

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