AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Knob Value berrechnungs problem

Knob Value berrechnungs problem

Ein Thema von EWeiss · begonnen am 10. Apr 2018 · letzter Beitrag vom 13. Apr 2018
 
EWeiss
(Gast)

n/a Beiträge
 
#1

Knob Value berrechnungs problem

  Alt 10. Apr 2018, 02:47
Meine Funktion

Delphi-Quellcode:
function TSkinSpriteContainer.XXX(ObjID, X, Y: Integer): Integer;
var
  Item: Integer;
  Angle: Single;
  Value: single;
  Width, Height: Integer;
  Frames: Integer;

function ValueFromAngle(Angle: single): single;
var
  RelativeAngle: single;
begin

  RelativeAngle := Angle - KNOB_OFFSET_ANGLE;
  if RelativeAngle < 0 then
    RelativeAngle := RelativeAngle + 2 * pi;

  Result := (RelativeAngle) / KNOB_ANGLE_RANGE;
  if Result > 1.0 then
  begin
    if RelativeAngle < 0.5 * KNOB_ANGLE_RANGE + pi then
      Result := 1
    else
    Result := 0;
  end;
end;

begin

  Result := 0;

  Item := gItemFromID(ObjID);
  if (Item > -1) then
  begin
    Frames := g_Obj[Item].x2 div g_Obj[Item].y2;

    Height := g_Obj[Item].y2;
    Width := g_Obj[Item].x2 div Frames;

    X := x - g_Obj[Item].x1;
    Y := Y - g_Obj[Item].y1;

    Angle := arctan2(Y - (Height div 2), X - (Width div 2));

    Value := ValueFromAngle(Angle) * 360;
    Result := round(Value);

    OutputDebugStringW(PWideChar(IntToStr(Result)));
  end;
end;
Mein Problem ist dies, wenn ich in die untere Hälfte des Knob klicke ist die Value 0
klicke ich in die obere hälfte ist sie 180.

Was ich aber erreichen möchte ist das sie oben bei 0 anfängt egal wo ich im Knob klicke.

Wenn ich nach rechts drehe soll sie inkrementieren und nach links von 360 ab dekrementieren.

Bekomme das im Moment nicht gebacken was läuft bei meiner Berechnung falsch?
Delphi-Quellcode:
  KNOB_GAP = 45 * pi / 180;
  KNOB_ANGLE_RANGE = 2 * pi - KNOB_GAP;
  KNOB_OFFSET_ANGLE = 0.5 * pi + 0.5 * KNOB_GAP;
gruss

Geändert von EWeiss (11. Jul 2019 um 16:50 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz