Moooin,
Ich würde gern ein Programm machen aber ich weis nicht so recht wie ich anfangen soll.
Also ich möchte ein Bild laden dann ein Layer darüber legen und auf den Layer punkte und Linien zeichnen
Das Bild muss natürlich zoombar sein.
Das zweite Problem ist das Zeichnen der Linien. Ich möchte eine Linie zeichnen und dann eine zweite Linie die genau 90 Grad zur ersten hat, durch drehen am Mausrad soll die zweite Linie auf der ersten Linie hin und her verschiebbar sein und mit einem klick verankert.
Als einsteigender Hobbyprogrammierer sind das große Hürden
LG Dirk
Grafik und Zeichnen ?
-
- Beiträge: 22
- Registriert: So 11. Jan 2015, 06:40
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: bei Göttingen
- Kontaktdaten:
Grafik und Zeichnen ?
--------
- corpsman
- Lazarusforum e. V.
- Beiträge: 1629
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Grafik und Zeichnen ?
Also
ich nehme für sowas immer gern eine Paintbox, sieh dir mal die Demo an
Was deine Geraden angeht so brauchst du da nur Mathe
y = m*x +b ist die Geradengleichung
die Senkrechte steigung bekommst du mit -1 = m1*m2 glaubig.
Dann musst nur noch nen Punkt auf deiner ersten Geraden nehmen.
Ich persöhnlich würde das aber mit Vektoren Rechnen geht beides
ich nehme für sowas immer gern eine Paintbox, sieh dir mal die Demo an
Code: Alles auswählen
Unit Unit1;
{$MODE objfpc}{$H+}
Interface
Uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls;
Type
{ TForm1 }
TForm1 = Class(TForm)
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
PaintBox1: TPaintBox;
Procedure Button1Click(Sender: TObject);
Procedure FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
Procedure FormCreate(Sender: TObject);
Procedure PaintBox1Paint(Sender: TObject);
private
FBild: TBitmap;
public
End;
Var
Form1: TForm1;
Implementation
{$R *.lfm}
{ TForm1 }
Procedure TForm1.PaintBox1Paint(Sender: TObject);
Begin
If assigned(FBild) Then Begin
PaintBox1.Canvas.StretchDraw(rect(0, 0, PaintBox1.Width, PaintBox1.Height), fbild);
End;
// Ein Paar Linien
PaintBox1.Canvas.Pen.Color := clred;
PaintBox1.Canvas.MoveTo(10, 10);
PaintBox1.Canvas.MoveTo(100, 20);
End;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
If opendialog1.Execute Then Begin
If Assigned(FBild) Then FBild.free;
fbild := TBitmap.Create;
FBild.LoadFromFile(opendialog1.FileName);
PaintBox1.Invalidate;
End;
End;
Procedure TForm1.FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
Begin
If assigned(FBild) Then fbild.free;
FBild := Nil;
End;
Procedure TForm1.FormCreate(Sender: TObject);
Begin
fbild := Nil;
End;
End.
y = m*x +b ist die Geradengleichung
die Senkrechte steigung bekommst du mit -1 = m1*m2 glaubig.
Dann musst nur noch nen Punkt auf deiner ersten Geraden nehmen.
Ich persöhnlich würde das aber mit Vektoren Rechnen geht beides

--
Just try it
Just try it
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Grafik und Zeichnen ?
Hi!
Ich hab Dir mal ne ganz simple Demo mit einem TImage gemacht.
Nächster Punkt der Linie: einfacher Maus-Click
Ende der Linie: Doppelklick.
Winni
Ich hab Dir mal ne ganz simple Demo mit einem TImage gemacht.
Nächster Punkt der Linie: einfacher Maus-Click
Ende der Linie: Doppelklick.
Winni
- Dateianhänge
-
LineDemo.zip
- (126.09 KiB) 60-mal heruntergeladen