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
Seite 1 von 2  1 2      
Jackie1983

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

Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 14:52
Servus,

habe schon bei google und hier gesucht. Habe auch schon genug funktionen gefunden um einen halbkreis zu zeichnen.

Z.b. hier von einer Seite
Grafik

Kein Problem. Nur mein Problem ist das ich die Koordinaten außen habe, links oben und rechts unten. Zwischen den beiden soll ein halbkreis gezeichnet werden.

Anbei eine Grafik wie weit ich bin.
Das grüne ist das Quadrat mit den Position p1 und p2. Das rote ist ein Quadrat mit p1 + 40 und p2 + 40.
Wie kann ich aber die 40 berechnen?
Kann mir da einer weiterhelfen?

gruß Thomas
Miniaturansicht angehängter Grafiken
kreis.jpg  
  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
 
#2

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:04
IMHO ist alles was Du brauchst der Mittelpunkt, von dort über StartWinkel bis (Startwinkel + 180) mit DegToRad für Sinus und Coisnus die Haltepunkte berechnen (Radius ist Dir ja bekannt) und verbinden.
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
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:06
Das sind doch keine Quadrate, sondern Rechtecke?!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Jackie1983

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

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:15
Das sind doch keine Quadrate, sondern Rechtecke?!
Ja blöd beschrieben solange sie quadratisch gezeichnet werden geht es, das meine ich....

IMHO ist alles was Du brauchst der Mittelpunkt, von dort über StartWinkel bis (Startwinkel + 180) mit DegToRad für Sinus und Coisnus die Haltepunkte berechnen (Radius ist Dir ja bekannt) und verbinden.
Mittelpunkt ist kein Problem. Aber wie berechne ich den Startwinkel. Sorry steh gerade voll auf dem schlauch, hätte in der Schule besser aufpassen müssen

Und mit der Methode Arc muss ich ja 4 Punkte übergeben.
  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
 
#5

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:39
suchst Du sowas?
Delphi-Quellcode:
var
  px1,py1,px2,py2, ipx1, ipy1, ipx2,ipy2:Integer;
begin
  px1 := 100;
  py1 := 100;
  px2 := 300;
  py2 := 300;
  ipx1 := px1 + 40;
  ipy1 := py1 + 40;
  ipx2 := px2 - 40;
  ipy2 := py2 - 40;

  Canvas.Arc(px1,py1,px2,py2, 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
Jackie1983

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

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 15:41
Genau so in der Art mache ich es Zur zeit.
Nur die 40 kenne ich ja nicht die muss ich ja berechnen nur weiß ich nicht wie.
//Edit ich muss also immer ein quadrat um die beiden punkte zeichnen und diese per halbkreis verbinden.

Geändert von Jackie1983 (14. Mär 2011 um 16:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

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

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 16: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
 
#8

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 16: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
 
#9

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 16: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.736 Beiträge
 
Delphi 6 Enterprise
 
#10

AW: Halbkreis zwischen zwei Punkten zeichnen.

  Alt 14. Mär 2011, 16: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 16:42 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:48 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