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);
}
}
}
}