AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Halbkreis zwischen zwei Punkten zeichnen.
Thema durchsuchen
Ansicht
Themen-Optionen

Halbkreis zwischen zwei Punkten zeichnen.

Ein Thema von Jackie1983 · begonnen am 14. Mär 2011 · letzter Beitrag vom 15. Mär 2011
Antwort Antwort
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:09
dreh mal das innere grüne "quadrat" gedanklich um 45°.
dann solltest du es sehen ^^

die länge der diagonalen des grünen quadrats entspricht der seitenlänge des roten quadrats

Edit: wenn das wirklich quadrate sein sollen ^^
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:24
Ist jetzt die Entfernung vom äußerem zum innerem Quadrat gesucht, wobei die Seitenlänge vom äußerem Quadrat gegeben ist?
Dann:
Delphi-Quellcode:
function getQdInnerCircQdDiff(const QuadSideLenDiv2: Extended): Extended;
begin
  Result := QuadSideLenDiv2 - Sin(Pi/180*45)*QuadSideLenDiv2;
end;
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#3

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:30
Ne das grüne habe ich. Also die Entfernung vom grünen zum roten.
45°... ja ok stimmt, jetzt muss ich das nur irgend wie in eine formel bekommen.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:39
Du hast doch Mittelpunkt und Radius des Kreises, oder was versteh ich jetzt nicht? Daraus leitet sich doch alles weitere ab...
Vllt. mal den Kreis ganz zeichnen, dann sieht mans doch.
Ralph

Geändert von Jumpy (14. Mär 2011 um 15:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:46
Dann halt: (Wenn ich mich auf die schnelle nicht vertue)
Delphi-Quellcode:
function getQdOuterCircQdDiff(const InnerQuadSideLen: Extended): Extended;
begin
  Result := (Sqrt(2*Power(InnerQuadSideLen,2)) - InnerQuadSideLen)/2;
end;
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:52
Dann halt: (Wenn ich mich auf die schnelle nicht vertue)
Delphi-Quellcode:
function getQdOuterCircQdDiff(const InnerQuadSideLen: Extended): Extended;
begin
  Result := (Sqrt(2*Power(InnerQuadSideLen,2)) - InnerQuadSideLen)/2;
end;
<=> Result := (Sqrt(2)*InnerQuadSideLen - InnerQuadSideLen)/2;
<=> Result := (Sqrt(2)-1)*InnerQuadSideLen/2;
Ralph
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#7

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 16:11
Sorry aber ich verstehe nur Bahnhof, boar eh zum kotzen wenn man das nicht mehr hinbekommt .

Soweit bin ich jetzt
l := Sqrt( Sqr(x2-x1) + Sqr(y2-y1) );

Jetzt habe ich schonmal die Hypotenuse
Wenn ich jetzt per Rectangle(0,0, l, l) bekomme ich ein Quadrat wo ich meinen halbkreis rein zeichnen kann, oder .
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 15. Mär 2011, 10:19
Delphi-Quellcode:
var
  px1,py1,px2,py2, ipx1, ipy1, ipx2,ipy2:Integer;
  f:Double;
begin
  px1 := 100;
  py1 := 100;
  px2 := 500;
  py2 := 500;
  ipx1 := px1 ;
  ipy1 := py1 ;
  ipx2 := px2 ;
  ipy2 := py2 ;
  f := (1 - sin(DegToRad(45))) * (px2-px1) / SQRT(2);
  Canvas.Rectangle(px1,py1,px2,py2);
  Canvas.Arc(Round(px1 - f),Round(py1 - f),Round(px2 + f),Round(py2 + f), ipx2,ipy2, ipx1, ipy1);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz