Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ein bisschen lineare Algebra (https://www.delphipraxis.net/148398-ein-bisschen-lineare-algebra.html)

gammatester 1. Mär 2010 11:44

Re: Ein bisschen lineare Algebra
 
Leute, er will den Winkel alpha zwischen N und Z haben, nicht nur das argument von Z!

Medium 1. Mär 2010 11:46

Re: Ein bisschen lineare Algebra
 
Wenn einer der 2 Vektoren einer Achse entspricht, wo ist der Unterschied im Ergebnis?

jfheins 1. Mär 2010 11:46

Re: Ein bisschen lineare Algebra
 
Zitat:

Zitat von gammatester
Leute, er will den Winkel alpha zwischen N und Z haben, nicht nur das argument von Z!

Jetzt beruhige dich mal ein wenig.
Wenn den Vektor N wirklich komplett frei sein soll, würde ich für beide Vektoren den Winkel mit arctan2 ausrechnen und davon dann die Differenz nehmen. Skalarprodukt mit arccos ist hier weder notwendig noch zielführend da es ja immer den kleinsten Winkel zwischen 2 Vektoren zurückgibt.

Ich hätte da noch ne Anregung:
Zitat:

Zitat von LDericher
1. Ich zeichne einen schwarzen Ring auf weißem Grund. (Canvas.Ellipse, temporäres BMP)
2. Ich durchlaufe die einzelnen Pixel vom Bild (im Moment noch über Canvas.Pixels, aber das werde ich noch rausoptimieren) und schreibe auf das Zielcanvas (das von der Form) den berechneten Farbwert, sofern ich kein weißes Pixel habe.

Das geht auch direkt: Prüfe ob der Radius (=> Pythagoras) zwischen einem inneren und einem äußeren Radius liegt ;)

gammatester 1. Mär 2010 11:55

Re: Ein bisschen lineare Algebra
 
Zitat:

Zitat von Medium
Wenn einer der 2 Vektoren einer Achse entspricht, wo ist der Unterschied im Ergebnis?

Zumindest müßte man beide Winkel berechnen, etwa
Delphi-Quellcode:
alpha := ArcTan2(vecN.X, vecN.Y) - ArcTan2(vecZ.X, vecZ.Y)
, wobei das Problem mit Winkeln > 180° weiterhin zu beachten ist.

LDericher 1. Mär 2010 11:56

Re: Ein bisschen lineare Algebra
 
Liste der Anhänge anzeigen (Anzahl: 1)
Leute, kommt mal runter, es funktioniert :D

jfheins 1. Mär 2010 11:58

Re: Ein bisschen lineare Algebra
 
Zitat:

Zitat von LDericher
Leute, kommt mal runter, es funktioniert :D

Dein "Grün" ist aber reichlich fad :P

Medium 1. Mär 2010 12:00

Re: Ein bisschen lineare Algebra
 
Nix, hier geht's um's Prinzip! :stupid: (schaut aber nett aus)

Den Winkel des (hier fixen) achsengleichen Vektors braucht man doch garnicht aufwendig zu berechnen, er ist ja bekannt und kann locker als Konstante addiert/subtrahiert werden. Das ist hier natürlich ein Spezialfall, keine Frage!

LDericher 1. Mär 2010 12:32

Re: Ein bisschen lineare Algebra
 
Zitat:

Zitat von jfheins
Zitat:

Zitat von LDericher
Leute, kommt mal runter, es funktioniert :D

Dein "Grün" ist aber reichlich fad :P

Oha! Du hast recht, ist mir gar nicht aufgefallen zuerst - und das ist leider wichtig für die Funktion des Ganzen...

Wie krieg ich das Grün denn hier rein? :x

Delphi-Quellcode:
function TColorRing.getColor(X, Y: integer): TColor;
var
  Angle:integer;
  R,
  G,
  B:Byte;
begin
Angle:=Self.getAngle(X, Y);
if(Angle in [0..119])then
  begin
  R:=255;
  G:=trunc(255*Angle/119);
  B:=0;
  end
else if(Angle in [120..239])then
  begin
  dec(Angle, 120);
  R:=trunc(255*(119 - Angle)/119);
  G:=trunc(255*(119 - Angle)/119);
  B:=trunc(255*Angle/119);
  end
else
  begin
  dec(Angle, 240);
  R:=trunc(255*Angle/119);
  G:=0;                          
  B:=trunc(255*(119 - Angle)/119);
  end;
Result:=RGB(R, G, B);
end;

jfheins 1. Mär 2010 12:39

Re: Ein bisschen lineare Algebra
 
http://de.wikipedia.org/wiki/HSV-Far...ung_HSV_in_RGB
Mit S = V = 1 und H = alpha
=> p=0; q=1-f; t=f

Sherlock 1. Mär 2010 12:42

Re: Ein bisschen lineare Algebra
 
Abschließend und leicht OT würde ich gerne festhalten, daß dieses Thema IMHO nicht die lineare Algebra betrifft, sondern die Trigonometrie ;)

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 2 von 3     12 3      

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