resim üzerinde iki nokta arasına line çizmek??
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
resim üzerinde iki nokta arasına line çizmek??
arkadaşlar kameradan aldığım resimde iki nokta belirleyeceğim...
örnegin x(25,30)
y(50,60)
bir butona tıkladığımda bu iki noktayı birleştiren ve resim kenarına kadar devam eden yani resmi ikiye bölen bir line çizdirmek istiyorum
forumlarda bir örnek bulamadım nasıl başlayacağımı bilemediğim için örnek bir şeylerde yapamadım...
bu konuda temel seviye bir şeyler yardımcı olursanız sevinirim
saygılarımla
örnegin x(25,30)
y(50,60)
bir butona tıkladığımda bu iki noktayı birleştiren ve resim kenarına kadar devam eden yani resmi ikiye bölen bir line çizdirmek istiyorum
forumlarda bir örnek bulamadım nasıl başlayacağımı bilemediğim için örnek bir şeylerde yapamadım...
bu konuda temel seviye bir şeyler yardımcı olursanız sevinirim
saygılarımla
Re: resim üzerinde iki nokta arasına line çizmek??
doğru anladıysam
canvas
Kolay gelsin.

Kolay gelsin.
UWESIS CORPORATION
Re: resim üzerinde iki nokta arasına line çizmek??
TCanvas sınıfının MoveTo ve LineTo metodları istediğinizi yapmanızı sağlayacaktır. Birinci noktaya MoveTo ile konumlanıp ardından LineTo ile çizimi gerçekleştirebilirsiniz. Küçük bir örnek aşağıdadır;
Kod: Tümünü seç
Canvas.Brush.Color := clRed;
Canvas.Ellipse(25, 30, 30, 35);
Canvas.Ellipse(50, 60, 55, 65);
Canvas.Pen.Color := clBlue;
Canvas.MoveTo(25, 30);
Canvas.LineTo(50,60);
Re: resim üzerinde iki nokta arasına line çizmek??
anladığım kadarıyla sadece o iki noktayı birleştirmek istemiyor arkadaş, o iki noktadan geçen ve resim kenarına kadar devam eden bir doğru çizmek istiyor......resim kenarına kadar devam...
koda dökemedim ama bkz iki noktadan geçen doğru denklemi

bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: resim üzerinde iki nokta arasına line çizmek??
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
DrawLine(image1.Picture.Bitmap,65,20,65,50);
end;
procedure TForm1.DrawLine(bmp: TBitmap; X1, Y1, X2, Y2: Integer);
var
m: Double; //eğim
p1, p2: Integer; //Unknown values
begin
if (x2=x1) then
m:=99999999999999
else
m:=(y2-y1)/(x2-x1);
if (m<bmp.Height/bmp.Width) and (m>-bmp.Height/bmp.Width) then
begin
if (x2=x1) then
begin
p1:=999999999;
p2:=999999999;
end
else
begin
p1:=round(((0-x2)*(y2-y1))/(x2-x1)+y2); // X=0, so Y is unknown value.
p2:=round(((bmp.Width-x2)*(y2-y1))/(x2-x1)+y2); //X=bmp.Width, ...
end;
bmp.Canvas.MoveTo(0,p1);
bmp.Canvas.LineTo(bmp.Width,p2);
end
else
begin
if (y2=y1) then
begin
p1:=999999999;
p2:=999999999;
end
else
begin
p1:=round(((0-y2)*(x2-x1))/(y2-y1)+x2);
p2:=round(((bmp.Height-y2)*(x2-x1))/(y2-y1)+x2);
end;
bmp.Canvas.MoveTo(p1,0);
bmp.Canvas.LineTo(p2,bmp.Height);
end;
end;

kolay gelsin
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
'Yükseldikçe küçülen bir uçurtma..'
Re: resim üzerinde iki nokta arasına line çizmek??
unicorn64 arkadaş tam olarak problemi tanımladı...
qamyoncu arkadaşın verdiği örneği uyguladığımda < DrawLine > da hata veriyor sanırım DrawLine'ın ne olduğunu bilmiyor..
saygılarımla..
qamyoncu arkadaşın verdiği örneği uyguladığımda < DrawLine > da hata veriyor sanırım DrawLine'ın ne olduğunu bilmiyor..
saygılarımla..
Re: resim üzerinde iki nokta arasına line çizmek??
direk kopyala yapıştır yaptıysan ondandır. @qamyoncu işlemi form1 altında tanımlanan bir procedure altında yapmış..
kodu incelemedim işinizi görür mü bilmem ama denemek için, form1 in tanım kısmında (unitin başındaki kısımda)
yazarak form1 sınıfına DrawLine tanımını eklemiş olursunuz...
kodu incelemedim işinizi görür mü bilmem ama denemek için, form1 in tanım kısmında (unitin başındaki kısımda)
Kod: Tümünü seç
TForm1 = class(TForm)
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure DrawLine(bmp: TBitmap; X1, Y1, X2, Y2: Integer); // bu satırı eklemelisin...
end;
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: resim üzerinde iki nokta arasına line çizmek??
tamam oldu çok teşekkürler şimdi kodları inceleyerek mantığı çözeceğim inşallah
çok teşekkürler
çok teşekkürler