Thema: Delphi GLscene Kreise

Einzelnen Beitrag anzeigen

Schuby

Registriert seit: 25. Dez 2018
93 Beiträge
 
#17

AW: GLscene Kreise

  Alt 4. Jan 2021, 18:57
Hallo, ich versuche es zu beschreiben.
Kreis berechnen, da habe ich mir eine eigene Routine geschrieben.
GLLine1 bis 3 sind die Achsenanzeige rot gelb grün

GLLines4 ist meine schwarzer Kreis

Button12 drücken => schwarzer Kreis wird gezeichnet.
Button12 drücken => vor Sleep(500) gelb / grün / rot Linien werden gelöscht
aber schwarzer Kreis bleibt

In Procedure TForm1.G2_Fahrt; ist nichts mit Grafik GLLine oder so
da werden nur die Punkte berechnet



Delphi-Quellcode:

Procedure TForm1.G2_Quadrant_1;
Begin
    //Quadrant = 1 X+ Y+
    if Quadrant = 1 then
    begin
         if (G2_StepX = true) then
         Begin
              //X
              GLLines4 := TGLLines(GLXYZGrid1.AddNewChild(TGLLines));
              GLLines4.LineWidth := 2;
              GLLines4.LineColor.AsWinColor := clBlack;

              GLLines4.AddNode(X_Steppen,0, Y_Steppen);
              y_Steppen:= y_Steppen + 0.1;
              GLLines4.AddNode(X_Steppen, 0, Y_Steppen);
              G2_StepX:= false;
         end;
         if G2_StepY = true then
         Begin
              //Y
              GLLines4 := TGLLines(GLXYZGrid1.AddNewChild(TGLLines));
              GLLines4.LineWidth := 2;
              GLLines4.LineColor.AsWinColor := clBlack;

              GLLines4.AddNode(X_Steppen,0, Y_Steppen);
              x_Steppen:= x_Steppen + 0.1;
              GLLines4.AddNode(x_Steppen, 0, Y_Steppen);
              G2_StepY:= false;
         end;
    end;
end;

Procedure TForm1.G2_Fahrt;
begin

  for i:= 1 to usw // immer einen neuen Punkt berechnen und in G2_Quadrant_1 anzeigen
    G2_Quadrant_1;
  bla.. bla..
end;

//=> Button12 start
procedure TForm1.Button12Click(Sender: TObject);
begin
  GLLines1.Nodes.Clear;
  GLLines2.Nodes.Clear;
  GLLines3.Nodes.Clear;
  GLLines4.Nodes.Clear;

  GLSceneViewer1.repaint;
  Form1.Update;

  sleep(500);

    GLLines1 := TGLLines(GLXYZGrid1.AddNewChild(TGLLines));
    GLLines1.NodesAspect := lnaInvisible;
    GLLines1.LineWidth := 4;
    //X Achse Gelb
    GLLines1.LineColor.AsWinColor := clYellow;
    GLLines1.AddNode(0,0,0);
    GLLines1.AddNode(20,0,0);


    GLLines2 := TGLLines(GLXYZGrid1.AddNewChild(TGLLines));
    GLLines2.NodesAspect := lnaInvisible;
    GLLines2.LineWidth := 4;
    //Y Achse Rot
    GLLines2.LineColor.AsWinColor := clRed;
    GLLines2.AddNode(0,0,0);
    GLLines2.AddNode(0,0,20);


    GLLines3 := TGLLines(GLXYZGrid1.AddNewChild(TGLLines));
    GLLines3.NodesAspect := lnaInvisible;
    GLLines3.LineWidth := 4;
    //Z Achse Grün
    GLLines3.LineColor.AsWinColor := clGreen;
    GLLines3.AddNode(0,0,0);
    GLLines3.AddNode(0,20,0);


    G2_Fahrt;

mfg schuby
Miniaturansicht angehängter Grafiken
1malbutton.jpg   2malbutton.jpg  
  Mit Zitat antworten Zitat