亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? delphi 最好的3D控件GLScene_Demos
?? PAS
字號:
{: Moving objects with the mouse.<p>

   In this demo you can move the two cubes around by picking and dragging
   them. This showcases the use of ScreenVectorIntersectXxxx functions.<p>

   You can also use the numeric keypad to move/zoom the camera and the arrow
   to move the selected object around.<p>

   (Based on Rado Stoyanov's test project)
}
unit Unit1;

interface

uses
  Windows, Forms, Dialogs, SysUtils, GLScene, GLObjects, GLMisc, Classes, Controls, GLGraph,
  GLCollision, GLTexture, OpenGL1x, StdCtrls, ExtCtrls, VectorGeometry, Graphics,
  GLVectorFileObjects, GLWin32Viewer, GLSpaceText, GLGeomObjects;

type
  TForm1 = class(TForm)
    GLScene1: TGLScene;
    Scn: TGLSceneViewer;
    GLCamera1: TGLCamera;
    DummyCube1: TGLDummyCube;
    ZArrow: TGLArrowLine;
    XArrow: TGLArrowLine;
    YArrow: TGLArrowLine;
    Cube1: TGLCube;
    TopLight1: TGLLightSource;
    Cube2: TGLCube;
    Floor: TGLCube;
    Panel1: TPanel;
    Button1: TButton;
    Label2: TLabel;
    Label1: TLabel;
    TxtX: TGLSpaceText;
    TxtY: TGLSpaceText;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    TxtZ: TGLSpaceText;
    procedure ScnMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
	 procedure ScnMouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure ScnAfterRender(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    lastMouseWorldPos : TVector;
    movingOnZ : Boolean;
    CurrentPick: TGLCustomSceneObject;
    function MouseWorldPos(x, y : Integer) : TVector;
  end;

const
  SelectionColor: TColorVector = (0.243, 0.243, 0.243, 1.000);

var
  Form1: TForm1;

implementation

{$R *.DFM}

function TForm1.MouseWorldPos(x, y : Integer) : TVector;
var
   v : TVector;
begin
   y:=Scn.Height-y;
   if Assigned(currentPick) then begin
      SetVector(v, x, y, 0);
      if movingOnZ then
         Scn.Buffer.ScreenVectorIntersectWithPlaneXZ(v, currentPick.Position.Y, Result)
      else Scn.Buffer.ScreenVectorIntersectWithPlaneXY(v, currentPick.Position.Z, Result);
   end else SetVector(Result, NullVector);
end;

procedure TForm1.ScnMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
   pick : TGLBaseSceneObject;
begin
   movingOnZ:=(ssShift in Shift);
   // If an object is picked...
   pick:=(Scn.Buffer.GetPickedObject(x, y) as TGLCustomSceneObject);
   if Assigned(Pick) then begin
      // Only Cube1 and Cube2 can be selected
      if (pick.Name <> 'Cube1') and (pick.Name <> 'Cube2') then
         pick := nil;
   end;
   if pick<>currentPick then begin
      if Assigned(currentPick) then
         currentPick.Material.FrontProperties.Emission.Color := clrBlack;
      currentPick:=TGLCustomSceneObject(pick);
      if Assigned(currentPick) then
         CurrentPick.Material.FrontProperties.Emission.Color := SelectionColor;
   end;
   // store mouse pos
   if Assigned(currentPick) then
      lastMouseWorldPos:=MouseWorldPos(x, y);
end;

procedure TForm1.ScnMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var
   newPos : TVector;
begin
   if ssLeft in Shift then begin
      // handle hold/unhold of shift
      if (ssShift in Shift)<>movingOnZ then begin
         movingOnZ:=(ssShift in Shift);
         lastMouseWorldPos:=MouseWorldPos(x, y);
      end;
      newPos:=MouseWorldPos(x, y);
      if Assigned(currentPick) and (VectorNorm(lastMouseWorldPos)<>0) then
         currentPick.Position.Translate(VectorSubtract(newPos, lastMouseWorldPos));
      lastMouseWorldPos:=newPos;
   end;
end;

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  // Note that 1 wheel-step induces a WheelDelta of 120,
  // this code adjusts the distance to target with a 10% per wheel-step ratio
  GLCamera1.AdjustDistanceToTarget(Power(1.1, WheelDelta / 120));
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   with GLCamera1 do case Key of
      '2': MoveAroundTarget(3, 0);
      '4': MoveAroundTarget(0, -3);
      '6': MoveAroundTarget(0, 3);
      '8': MoveAroundTarget(-3, 0);
      '-': AdjustDistanceToTarget(1.1);
      '+': AdjustDistanceToTarget(1 / 1.1);
   end;
end;

procedure TForm1.ScnAfterRender(Sender: TObject);
var
   objPos, winPos : TAffineVector;
   canvas : TCanvas;
begin
   canvas:=TCanvas.Create;
   try
      canvas.Handle:=Scn.RenderDC;
      canvas.Brush.Style := bsClear;
      canvas.Font.Name := 'Verdana';
      canvas.Font.Color := clWhite;

      if Assigned(currentPick) then begin
         SetVector(objPos, currentPick.AbsolutePosition);
         canvas.TextOut(3, 3 + 1 * canvas.TextHeight('A'),
                        Format('New Object Position: Xn: %4.4f, Yn: %4.4f, Zn: %4.4f',
                               [objPos[0], objPos[1], objPos[2]]));
         winPos:=Scn.Buffer.WorldToScreen(objPos);
         canvas.TextOut(Round(winPos[0]), Scn.Height-Round(winPos[1]),
                        currentPick.Name);
      end else begin
         canvas.TextOut(3, 3+canvas.TextHeight('A'), 'No selected object');
      end;
   finally
      canvas.Free;
   end;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Assigned(currentPick) then with currentPick do case Key of
      VK_UP :     if ssShift in Shift then
                     Translate(0, 0, 0.3)
                  else Translate(-0.3, 0, 0);
      VK_DOWN :   if ssShift in Shift then
                     Translate(0, 0, -0.3)
                  else Translate(0.3, 0, 0);
      VK_LEFT :   Translate(0, -0.3, 0);
      VK_RIGHT :  Translate(0, 0.3, 0);
    end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区在线视频| 99久久久无码国产精品| 中文字幕一区二区三区在线播放| 在线不卡的av| 色婷婷综合久久久中文一区二区 | 国产精品亚洲视频| 日韩精品国产精品| 亚洲一区二区三区爽爽爽爽爽 | 狠狠色伊人亚洲综合成人| 亚洲电影在线免费观看| 337p粉嫩大胆色噜噜噜噜亚洲| 6080yy午夜一二三区久久| 欧美性色黄大片| 99久久99精品久久久久久| 岛国一区二区在线观看| 国产98色在线|日韩| 久久精品免费看| 久久99久久久欧美国产| 日本成人在线不卡视频| 亚洲福利视频一区| 日韩中文字幕一区二区三区| 亚洲va欧美va国产va天堂影院| 亚洲欧美日韩一区二区| 亚洲精品视频在线观看网站| 亚洲最大成人网4388xx| 一区二区三区在线视频免费| 亚洲国产精品麻豆| 青草av.久久免费一区| 日本伊人色综合网| 精东粉嫩av免费一区二区三区| 国产精品996| 91视频你懂的| 精品视频123区在线观看| 日韩欧美一级在线播放| 久久网站热最新地址| 国产精品女主播在线观看| 欧美va天堂va视频va在线| 日韩区在线观看| 国产网站一区二区| www国产成人| ...av二区三区久久精品| 五月婷婷综合激情| 日韩免费电影一区| 欧美日韩精品欧美日韩精品一| 精品国产凹凸成av人导航| 国产精品久久久久一区二区三区| 婷婷夜色潮精品综合在线| 丁香激情综合国产| 精品va天堂亚洲国产| 亚洲综合一二三区| 国产91精品在线观看| 欧美久久免费观看| 亚洲美女淫视频| 国产成人鲁色资源国产91色综| 欧美怡红院视频| 国产精品久久久久久久浪潮网站 | 亚洲va中文字幕| 成人免费视频视频| 精品久久免费看| 婷婷丁香久久五月婷婷| 91浏览器入口在线观看| 久久新电视剧免费观看| 美女久久久精品| 欧美色爱综合网| 亚洲三级免费观看| 成人网在线播放| 国产日本欧美一区二区| 国产一区二区三区在线观看精品 | 国产性色一区二区| 久久99精品久久久| 欧美一区二区三区免费在线看 | 亚洲视频在线一区观看| av在线不卡电影| 国产精品夫妻自拍| 成人涩涩免费视频| 国产精品全国免费观看高清 | 国产精品乱码妇女bbbb| 国产精品一区二区无线| www激情久久| 国产传媒日韩欧美成人| 国产欧美一区二区精品久导航| 韩国av一区二区三区在线观看| 欧美成人免费网站| 国产精品香蕉一区二区三区| 久久欧美中文字幕| 国产黑丝在线一区二区三区| 欧美国产精品专区| 99久精品国产| 亚洲电影在线播放| 欧美日韩中文另类| 性做久久久久久免费观看| 在线观看91精品国产麻豆| 麻豆国产精品官网| 欧美mv日韩mv| 不卡在线观看av| 亚洲一区欧美一区| 日韩午夜小视频| 国产成人综合亚洲网站| 亚洲人成精品久久久久久| 欧美无砖砖区免费| 久久国产尿小便嘘嘘尿| 久久久精品免费网站| 91一区二区在线| 日韩制服丝袜先锋影音| 久久女同互慰一区二区三区| 91视频你懂的| 久草在线在线精品观看| 国产精品久久久一本精品| 欧美日本一道本在线视频| 激情小说欧美图片| 亚洲色图一区二区三区| 91精品国产综合久久久久久| 国产精品亚洲午夜一区二区三区 | 亚洲1区2区3区视频| 精品国产一区二区三区久久久蜜月| 丁香婷婷综合色啪| 亚洲一区二区三区四区五区中文| 日韩欧美精品三级| 成人听书哪个软件好| 亚洲人成精品久久久久久| 精品嫩草影院久久| 一本大道久久精品懂色aⅴ | 日韩综合小视频| 精品精品国产高清a毛片牛牛| 懂色中文一区二区在线播放| 中文字幕不卡在线| 精品国一区二区三区| 91亚洲国产成人精品一区二三| 亚洲一区二区三区美女| 精品福利av导航| 91日韩一区二区三区| 国产盗摄一区二区| 首页国产丝袜综合| 欧美国产丝袜视频| 69堂精品视频| 91啪亚洲精品| 国产在线看一区| 午夜精品福利在线| 亚洲欧美中日韩| 欧美成人精精品一区二区频| 欧美人伦禁忌dvd放荡欲情| 国产成人亚洲综合a∨猫咪| 同产精品九九九| 亚洲免费在线视频一区 二区| 精品国产免费人成电影在线观看四季| 在线播放视频一区| 色婷婷av一区二区三区gif| 国产原创一区二区| 天天免费综合色| √…a在线天堂一区| 中文字幕第一区二区| 日韩欧美一二三四区| 欧洲视频一区二区| 色综合av在线| 韩国毛片一区二区三区| 精品一二线国产| 舔着乳尖日韩一区| 亚洲欧美另类图片小说| 国产精品网站在线| 欧美一区二区视频网站| 欧美视频精品在线| 色狠狠色狠狠综合| 91亚洲精华国产精华精华液| 日本不卡视频在线观看| 蜜桃视频免费观看一区| 婷婷综合另类小说色区| 偷拍日韩校园综合在线| 亚洲国产成人av好男人在线观看| 国产精品美女一区二区三区| 色噜噜夜夜夜综合网| 亚洲久草在线视频| 亚洲综合色婷婷| 亚洲欧美在线aaa| 国产精品二三区| 亚洲国产精品二十页| 日韩欧美国产一二三区| 精品国产成人在线影院| 精品国产91久久久久久久妲己 | 综合婷婷亚洲小说| 亚洲国产精品天堂| 日韩成人免费在线| 久久精品国产一区二区| 国产精品18久久久久久vr| 91捆绑美女网站| 欧洲亚洲国产日韩| 欧美一区二区黄色| 国产日韩欧美制服另类| 亚洲综合精品久久| 久久精品国产亚洲5555| 激情六月婷婷久久| gogo大胆日本视频一区| 91色九色蝌蚪| 欧美精品xxxxbbbb| 欧美成人女星排名| 亚洲国产成人自拍| 狂野欧美性猛交blacked| hitomi一区二区三区精品| 欧美日韩中文精品| 久久久久久久久久电影| 亚瑟在线精品视频|