Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Geometriekollision! Was würdet Ihr mir empfehlen? (https://www.delphipraxis.net/10080-geometriekollision-wuerdet-ihr-mir-empfehlen.html)

Armageddon 11. Okt 2003 11:24


Geometriekollision! Was würdet Ihr mir empfehlen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich möchte gern etwas zusammenbastelproggen.
Und zwar möchte ich etwas schaffen das mir eine Kontur aufzeichnet und dann eine andere Kontur auf den Punkt P1 gebracht wird, und von diesem Punkt aus dann in Richtung Kontur verfährt bis die Werkzeugkontur mit der Teilkontur kollidiert. Wenn es kollidiert soll der Punkt wo sich das Werkzeug befindet ausgegeben werden.

Ich hoffe Jemand versteht was ich meine und kann mir helfen.

Ich hab das mal als .bmp File angehängt zum anschauen. (Meckert nur nicht es ging nicht anders!).

Meine Frage ist nun: Mit was würdet Ihr das realisieren?

Später soll die Kontur dann auch noch um die Längsachse rotiert werden.
Also Quasi als Volumenmodell. Aber das ist erst mal nebensächlich.

mfg. Arma

Armageddon 11. Okt 2003 21:12

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
Hi,

keiner nen Idee für mich? Es muß nicht gleich 3D sein das kommt erst viel später mal. In 2D reicht für den Anfang vollkommen. Könnt ja auf den Canvas zeichen denk ich aber da ist ja nix mit Kollisionskontrolle oder?

Irgend nen Ansatz würde mir schon weiterhelfen.

:wall:


Gruß Arma.

himitsu 11. Okt 2003 22:27

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
Hi,

du kannst deine Objektkontur in ein BitMap zeichnen und dann an der virtuellen Kontur des Werkzeugs die Farbwerte mit Canvas.Pixels[x, y] abfragen. Wenn du dann das werkzeug Pixelweise verschiebst, bekommst du an hand der Farbwerte mit ob das Werkzeug mit dem Objekt kolidiert.

Kannst das Ganze aber auch mit Hilfe der Mathematik lösen. Wenn mann das Bild so sieht, brauchst dur nur mal an Kreise, Tangenten und so zu denken.

Wenn das in Richtung eines kleinen Fertigungsroboters (Fräser ...) gehen soll. Hab' das auch noch im Hinterkopf, wurde aber auf Grund der Komplexität und zu Gunsten anderer Projekte erst mal eingestellt. Quellcodes, die dir bei der mathematischen Lösung hätten helfen können, sind leider schon gelöscht.

Armageddon 12. Okt 2003 22:28

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
Hi Himitsu,

erstmal Danke für Deine Antwort. Hört sich vernünftig an. *g*
Wird aber erstmal nix für den Fräsesektor. Ich will den G71 Schruppzyklus einer Fanucsteuerung nachprogrammieren. Zweckswerkzeugweg optimierung und Stückzeitermittlung. Später vielleicht noch alles in 3D.

Soll mal nur ein reiner Simulator werden um die Programme einer STAR-SR20R zu Simulieren und evtl. Fehler zu finden bevor man das Programm in die Maschine sendet. Bzw. auch um die evtl. Stückzeit für Neuteile vorher zu bestimmen bevor sie erstmal auf der Maschine eingestellt werden.

Hab noch viel vor und würde mich über jede Hilfe oder jeden Tip freuen.

Gruß Arma.

himitsu 13. Okt 2003 07:05

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
In dem Fall geht das eh' nur rechnerisch, schon allein wegen der Genauigkeit. Und mit 'ner 2D-Zeichenfläche währst du für 'ne 3D-Figur auch nicht hingekommen.
Kann aber schon mal sagen das es 'ne ziemlich aufwendige Rechnerei wird, schon allein wegen der Komplexität der zu berechnenden Figuren. Und das Werkstück ändert sich dann ja auch noch ständig.
Für einen derartigen Rechenaufwand, währe es vielleicht besser auf eine der höheren Programmiersprachen umzusteigen. Wie z.B. C++ oder besser noch höher - Delphi ist in der Hinsicht ja etwas langsam.

Hatte da mal an einer Arbeitswegoptimierung mit eventueller Ansteuerung für einen kleinen Fräsroboter gearbeitet. Den Robo könnte man sich zum Beispiel so wie die größeren Schweißrobo's in der Autoindustrie vorstellen. Und da sich dieser Aufwand für Kleinserien einfach nicht lohnte, hab ich's halt wieder aufgegeben.
:cry: Als kleiner Bastelfreak hätte mich das zwar noch gereizt, aber man muß auch irgendwo seine Prioritäten setzen.

Dennoch viel Glück
Frank

Wormid 13. Okt 2003 10:58

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
Was die Geschwindigkeit von C++ <> Delphi angeht, so verweise ich mal leise hüstelnd auf die Artikelserie "C# im Geschwindigkeitstest" der ct. (19/2003 S.204 und 21/2003 S.222, Teil 3 steht noch aus)... (Artikel nicht online einsehbar, sonst hätte ich sie verlinkt :( )
In dem Test wird geprüft, wie schnell denn Delphi, C++, C# und Java bei der Lösung der gleichen Probleme sind.
Der ein oder andere C++ -Fetischist oder Java-Hasser wird überrascht sein, würde ich mal zu behaupten wagen :zwinker:.

Gruß

Wormid

himitsu 13. Okt 2003 17:25

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
:warn: Ich lass mich ja gerne eines Besseren belehren, bekomme halt nur von allen Seiten zu hören wie toll C ist. Und da ich beispielsweise nur noch einen anderen Delphi-Programmierer hier in Dresden kenne, der das Ganze noch hobbymäßiger (extrem wenig) als ich macht, hab ich halt daran auch nicht gezweifelt. Das sehr viele Softwarefirmen C und nicht Delphi verlangen muss doch auch noch einen Grund haben?

Damals, als ich mir Delphi 4 (mein Einstieg) kaufen wollte, musste ich erst eine Weile suchen, bis ich einen Laden fand, der mir helfen konnte (Beratung und Beschaffung). Die anderen wollten mich alle, wenn sie überhaupt etwas Ahnung vom Programmieren hatten, in Richtung C++ drängen. Aber nach Basic und Pascal war Delphi (Object Pascal) für mich die einfachere Lösung.
Ich weis ja nicht, ob es noch andere so schwer hatten, aber für mich war es hart und der Spott sehr groß. Kannte mal einige, für die war Delphi keine richtige Programmiersprache.

Und wenn das hier (Delphi besser als C++) auch noch stimmt, ist es doch super, das ich mich damals nicht hab' umstimmen lassen. Werd' mich mal noch etwas informieren und vielleicht hab' ich dann auch mal etwas, um über die C-ler herzuziehen.



Na gut, da ich nebenbei noch ein biss’l mit Mikroprozessoren zu tun hab, wird halt doch etwas Assembler, C++ und CCBasic gebraucht. Und in Delphi kann etwas Assembler ja auch nicht schaden, denn das ist jetzt aber schneller.

Einen Gruß an alle Delphi-Fetischisten :love:
Frank

Armageddon 13. Okt 2003 17:57

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
Hi Everybody.

Mir ist schon klar das es eine morts Rechnerei wird, aber nur für den PC nicht für mich *hehe* Der hat ja Zeit. In erster Linie geht es mir erst einmal darum so etwas zu realisieren. Egal wie schön es aussieht oder wie lange es läuft. Hauptsache mal ein Einstieg.

Also ist bis jetzt die einzige Möglichkeit mit dem Bitmap da.
Hmm schade dachte da gibts vielleicht was wo man Linien oder Bögen so lange erweitern kann bis sie eine andere Linie treffen. :gruebel:


Naja muß ich mal gucken.


Gruß Arma.

Wormid 13. Okt 2003 17:59

Re: Geometriekollision! Was würdet Ihr mir empfehlen?
 
"Delphi ist besser als C++", das kann man so generell nicht sagen. Aber andersrum stimmt die Aussage auch längst nicht immer... C++ ist z.B. scheinbar deutlicj langsamer beim Konstruieren und Erzeugen von Objekten, dafür ist der Compiler besser optimiert und einige Berechnungen und Schleifen rennen da schneller als in Delphi und Co.

Auch Java ist (wenn man von der Ladezeit der VM absieht), längst nicht mehr so lahm wie früher... und C# (leider noch keine Erfahrungen mit gemacht) muss auch wohl recht fix sein.
Aber auf eines weißt der angesprochene Artikel schon hin: Delphi.NET wird richtig rocken!

Gruß

Wormid


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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