Autor
|
Thema: Prüfen ob Double/Single negativ ? (488 mal gelesen)
|
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 08. Aug. 2008 06:51 <-- editieren / zitieren --> Unities abgeben:
Guten morgen allerseits ich hab mal eine vielleicht simple Frage steh aber grad auf´m Schlauch. Kann mir jemand sagen wie ich in VB2005 zuverlässig prüfen kann ob eine Variable des Datentyps Single oder Double Negativ ist? Mein Problem ist, ich lese den Vektor einer Plane aus und bekommen die XYZ Koordinaten als Double und ich bräuchte als Ergebnis false wenn zwei Koordinaten Negativ sind.Im Moment hab ich da keinen Lösungsansatz, vielleicht hilft mir ja jemand auf die Sprünge. Danke im Voraus Gruß Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 08. Aug. 2008 08:03 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Hallo, ist wirklich simple. Entweder verstehe ich dich grad falsch oder es ist wirklich so simple. If Wert1 < 0 then Wert2 = False ------------------ MFG Rick Schulz Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 08. Aug. 2008 08:45 <-- editieren / zitieren --> Unities abgeben:
Ja im Prinzip passt das schon mal, Danke erstmal! Ich erklär mal das Szenario: Ich habe zwei Ebenenen (Dim Plane1,Plane2 as Plane) Von beiden Ebenen bekomm ich den Vektor mit Plane1.GetXVal usw. Jetzt hab ich von beiden Ebenen die XYZ Koordinaten. Wenn jetzt z.B. von Plane1 X und Y Positive Werte sind und Z Negativ(also immer zwei Positiv oder Negativ, kann auch Z u. Y sein), und von Plane2 XYZ genau das Gegenteil aufweisen, also in diesem Fall X u. Y Negative u. Z Positive dann brauch ich als Ergebnis true oder false. Und jetzt grübel ich grad wie das als Schleife oder select case oder wie auch immer aufbau. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 08. Aug. 2008 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Ok dann sieht die Sache schon wieder anders aus. Was genau möchtest du denn erreichen bzw. wie genau soll dein Ergebnis aussehen. ------------------ MFG Rick Schulz Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 08. Aug. 2008 09:05 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Wie wäre es denn damit? If Plane1X < 0 then BoolX = false else BoolX = true endif If Plane1Y < 0 then BoolY = false else BoolY = true endif If Plane1Z < 0 then Bool1Z = false else Bool1Z = true endif If Plane2X < 0 then Bool2X = false else Bool2X = true endif If Plane2Y < 0 then Bool2Y = false else Bool2Y = true endif If Plane2Z < 0 then Bool2Z = false else Bool2Z = true endif If Bool1X = Bool2X AND Bool1Y = Bool2Y AND Bool1Z = Bool2Z then Result = true else Result = false endif Ob es schöner geht weis ich im Moment nicht, aber dieser Ansatz kam mir gerade so in den Kopf. ------------------ MFG Rick Schulz Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 08. Aug. 2008 10:24 <-- editieren / zitieren --> Unities abgeben:
Das liefert nicht das gewünschte ergebnis ich hab von zwei Ebenen die Vektoren X Y Z zB: X Y Z Plane1: -0,402257 -0,0689 0,912931 Plane2: 0,42257 0,068903 -0,91293 Gewünschtes Ergenis bool = true oder Plane1: -0,402257 0,0689 0,912931 Plane2: 0,42257 -0,068903 0,91293 Gewünschtes Ergenis bool = false oder Plane1: 0,402257 -0,0689 -0,912931 Plane2: -0,42257 0,068903 0,91293 Gewünschtes Ergenis bool = true also immer wenn zwei Koordinaten einer Ebene das selbe Vorzeichen aufweisen und die dritte das Gegenteil, und die Koordinaten der Plane2 gegenteilige Vorzeichen haben brauch ich true. Und das ganze möchte ich natürlich so elegant wie möglich lösen, da ich um jede routine und Codezeile weniger froh bin.
[Diese Nachricht wurde von Augustiner am 08. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Aug. 2008 10:48 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
Servus Was willst du eigendlich damit machen? Willst du bestimmen, ob die Flächennormalen gegeneinander gerichtet sind? Könnt man dies nicht mit der Berechnung der Winkel zwischen de beiden Vektoren erledigen (Spichwort Skalarprodukt)? Gruß Bernd EDIT: Es ist gar nicht notwendig den Winkel zu berechnen, das Vorzeichen des Skalarproduktes bestimmt die Ausrichtung (siehe hier). ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 08. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 08. Aug. 2008 11:22 <-- editieren / zitieren --> Unities abgeben:
Ich vermute das ich das brauche, beim Skalarprodukt war ich schon(nix verstehen )ich denke das sollte ich mir mal genauer zu gemüte führen. Schaut aber sehr kompliziert aus. Bin natürlich für weitere Lösungen und anregungen empfänglich. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blaue_Elise Mitglied Aspirateur
Beiträge: 150 Registriert: 15.02.2004 Faber-Castell MENTOR 52/80 Rotring 0,35 - 0,5 - 0,7 Nestler A0 Standardgraph
|
erstellt am: 08. Aug. 2008 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Augustiner
In einfachen Worten: x1*x2+y1*y2+z1*z2 = Skalarprodukt Skalarprodukt > 0: spitzer Winkel zwischen den Vektoren Skalarprodukt = 0: Vektoren sind rechtwinklig zueinander Skalarprodukt < 0: stumpfer Winkel zwischen den Vektoren ------------------ Gruß Elise Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 11. Aug. 2008 07:24 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen vielen Dank für die Tipps Links und Erklärungen, hatt mich auf jedenfall um einiges weitergebracht. Ich denke das Skalarprodukt ist das was ich brauche, werde es die nächsten mal Tage durchtesten. Schönen Tag noch Gruß Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |