唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)

Figure 窗口初始化

figure 使用默认属性值创建一个新的图窗窗口。生成的图窗为当前图窗。f = figure(___) 返回 Figure 对象。可使用 f 在创建图窗后查询或修改其属性。figure(f) 将 f 指定的图窗作为当前图窗,并将其显示在其他所有图窗的上面。

figure(n) 查找 Number 属性等于 n 的图窗,并将其作为当前图窗。如果不存在具有该属性值的图窗,MATLAB® 将创建一个新图窗并将其 Number 属性设置为 n。

指定图窗标题

创建一个图窗并指定 Name 属性。默认情况下,生成的标题包含图窗编号。

figure('Name','Measured Data');

再次指定 Name 属性,但这次将 NumberTitle 属性设置为 ‘off’。生成的标题不包含图窗编号。

figure('Name','Measured Data','NumberTitle','off');

将背景色设置为白色

figure('Color','white')

唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)_第1张图片

figure 属性

                 Alphamap: [1×64 double]
             BeingDeleted: off
               BusyAction: 'queue'
            ButtonDownFcn: ''
                 Children: [0×0 GraphicsPlaceholder]
                 Clipping: on
          CloseRequestFcn: 'closereq'
                    Color: [0.9400 0.9400 0.9400]
                 Colormap: [256×3 double]
              ContextMenu: [0×0 GraphicsPlaceholder]
                CreateFcn: ''
              CurrentAxes: [0×0 GraphicsPlaceholder]
         CurrentCharacter: ''
            CurrentObject: [0×0 GraphicsPlaceholder]
             CurrentPoint: [0 0]
                DeleteFcn: ''
             DockControls: on
                 FileName: ''
        GraphicsSmoothing: on
         HandleVisibility: 'on'
                     Icon: ''
            InnerPosition: [488 342 560 420]
            IntegerHandle: on
            Interruptible: on
           InvertHardcopy: on
              KeyPressFcn: ''
            KeyReleaseFcn: ''
                  MenuBar: 'figure' (默认) | 'none'
                     Name: 'Measured Data'
                 NextPlot: 'add'
                   Number: 2
              NumberTitle: on
            OuterPosition: [481 334.6000 574.4000 508.8000]
         PaperOrientation: 'portrait'
            PaperPosition: [1.3333 3.3125 5.8333 4.3750]
        PaperPositionMode: 'auto'
                PaperSize: [8.5000 11]
                PaperType: 'usletter'
               PaperUnits: 'inches'
                   Parent: [1×1 Root]
                  Pointer: 'arrow'
        PointerShapeCData: [16×16 double]
      PointerShapeHotSpot: [1 1]
                 Position: [488 342 560 420]
                 Renderer: 'opengl'
             RendererMode: 'auto'
                   Resize: on
               Scrollable: off
            SelectionType: 'normal'
           SizeChangedFcn: ''
                      Tag: ''
                  ToolBar: 'auto'
                     Type: 'figure'
                    Units: 'pixels'
                 UserData: []
                  Visible: on
      WindowButtonDownFcn: ''
    WindowButtonMotionFcn: ''
        WindowButtonUpFcn: ''
        WindowKeyPressFcn: ''
      WindowKeyReleaseFcn: ''
     WindowScrollWheelFcn: ''
              WindowState: 'normal'	(默认) | 'minimized' | 'maximized' | 'fullscreen'
              WindowStyle: 'normal'	(默认) | 'modal' | 'docked'

Figure gca 坐标轴

                        ALim: [0 1]
                    ALimMode: 'auto'
                  AlphaScale: 'linear'
                    Alphamap: [1×64 double]
           AmbientLightColor: [1 1 1]
                BeingDeleted: off
                         Box: off
                    BoxStyle: 'back'
                  BusyAction: 'queue'
               ButtonDownFcn: ''
                        CLim: [0 1]
                    CLimMode: 'auto'
              CameraPosition: [0.5000 0.5000 9.1603]
          CameraPositionMode: 'auto'
                CameraTarget: [0.5000 0.5000 0.5000]
            CameraTargetMode: 'auto'
              CameraUpVector: [0 1 0]
          CameraUpVectorMode: 'auto'
             CameraViewAngle: 6.6086
         CameraViewAngleMode: 'auto'
                    Children: [0×0 GraphicsPlaceholder]
                    Clipping: on
               ClippingStyle: '3dbox'
                       Color: [1 1 1]
                  ColorOrder: [7×3 double]
             ColorOrderIndex: 1
                  ColorScale: 'linear'
                    Colormap: [256×3 double]
                 ContextMenu: [0×0 GraphicsPlaceholder]
                   CreateFcn: ''
                CurrentPoint: [2×3 double]
             DataAspectRatio: [1 1 1]
         DataAspectRatioMode: 'auto'
                   DeleteFcn: ''
                   FontAngle: 'normal'
                    FontName: 'Helvetica'
                    FontSize: 10
                FontSizeMode: 'auto'
               FontSmoothing: on
                   FontUnits: 'points'
                  FontWeight: 'normal'
                   GridAlpha: 0.1500
               GridAlphaMode: 'auto'
                   GridColor: [0.1500 0.1500 0.1500]
               GridColorMode: 'auto'
               GridLineStyle: '-'
            HandleVisibility: 'on'
                     HitTest: on
               InnerPosition: [0.1300 0.1100 0.7750 0.8150]
                Interactions: [1×1 matlab.graphics.interaction.interface.DefaultAxesInteractionSet]
               Interruptible: on
     LabelFontSizeMultiplier: 1.1000
                       Layer: 'bottom'
                      Layout: [0×0 matlab.ui.layout.LayoutOptions]
                      Legend: [0×0 GraphicsPlaceholder]
              LineStyleOrder: '-'
         LineStyleOrderIndex: 1
                   LineWidth: 0.5000
              MinorGridAlpha: 0.2500
          MinorGridAlphaMode: 'auto'
              MinorGridColor: [0.1000 0.1000 0.1000]
          MinorGridColorMode: 'auto'
          MinorGridLineStyle: ':'
                    NextPlot: 'replace'
             NextSeriesIndex: 1
               OuterPosition: [0 0 1 1]
                      Parent: [1×1 Figure]
               PickableParts: 'visible'
          PlotBoxAspectRatio: [1 0.7882 0.7882]
      PlotBoxAspectRatioMode: 'auto'
                    Position: [0.1300 0.1100 0.7750 0.8150]
          PositionConstraint: 'outerposition'
                  Projection: 'orthographic'
                    Selected: off
          SelectionHighlight: on
                  SortMethod: 'childorder'
                    Subtitle: [1×1 Text]
          SubtitleFontWeight: 'normal'
                         Tag: ''
                     TickDir: 'in'
                 TickDirMode: 'auto'
        TickLabelInterpreter: 'tex'
                  TickLength: [0.0100 0.0250]
                  TightInset: [0.0438 0.0527 0.0171 0.0200]
                       Title: [1×1 Text]
     TitleFontSizeMultiplier: 1.1000
             TitleFontWeight: 'bold'
    TitleHorizontalAlignment: 'center'
                     Toolbar: [1×1 AxesToolbar]
                        Type: 'axes'
                       Units: 'normalized'
                    UserData: []
                        View: [0 90]
                     Visible: on
                       XAxis: [1×1 NumericRuler]
               XAxisLocation: 'bottom'
                      XColor: [0.1500 0.1500 0.1500]
                  XColorMode: 'auto'
                        XDir: 'normal'
                       XGrid: off
                      XLabel: [1×1 Text]
                        XLim: [0 1]
                    XLimMode: 'auto'
                XLimitMethod: 'tickaligned'
                  XMinorGrid: off
                  XMinorTick: off
                      XScale: 'linear'
                       XTick: [1×11 double]
                  XTickLabel: {11×1 cell}
              XTickLabelMode: 'auto'
          XTickLabelRotation: 0
                   XTickMode: 'auto'
                       YAxis: [1×1 NumericRuler]
               YAxisLocation: 'left'
                      YColor: [0.1500 0.1500 0.1500]
                  YColorMode: 'auto'
                        YDir: 'normal'
                       YGrid: off
                      YLabel: [1×1 Text]
                        YLim: [0 1]
                    YLimMode: 'auto'
                YLimitMethod: 'tickaligned'
                  YMinorGrid: off
                  YMinorTick: off
                      YScale: 'linear'
                       YTick: [1×11 double]
                  YTickLabel: {11×1 cell}
              YTickLabelMode: 'auto'
          YTickLabelRotation: 0
                   YTickMode: 'auto'
                       ZAxis: [1×1 NumericRuler]
                      ZColor: [0.1500 0.1500 0.1500]
                  ZColorMode: 'auto'
                        ZDir: 'normal'
                       ZGrid: off
                      ZLabel: [1×1 Text]
                        ZLim: [0 1]
                    ZLimMode: 'auto'
                ZLimitMethod: 'tickaligned'
                  ZMinorGrid: off
                  ZMinorTick: off
                      ZScale: 'linear'
                       ZTick: [0 0.5000 1]
                  ZTickLabel: ''
              ZTickLabelMode: 'auto'
          ZTickLabelRotation: 0
                   ZTickMode: 'auto'

Figure 窗口监听鼠标事件

MATLAB 中 Figure 窗口可以监听鼠标事件。常见的鼠标事件:

鼠标按下:WindowButtonDownFcn

set(fig, 'WindowButtonDownFcn', @mouseButtonDownCallback);

鼠标松开:WindowButtonUpFcn

set(fig, 'WindowButtonUpFcn', @mouseButtonUpCallback);

鼠标移动:WindowButtonMotionFcn

set(fig, 'WindowButtonMotionFcn', @mouseMoveCallback);

鼠标进入:WindowEnterFcn

set(fig, 'WindowEnterFcn', @mouseEnterCallback);

鼠标离开:WindowExitFcn

set(fig, 'WindowExitFcn', @mouseExitCallback);

鼠标滚轮滚动:WindowScrollWheelFcn

set(fig, 'WindowScrollWheelFcn', @mouseScrollWheelCallback);

以上的示例中,fig 是你的 Figure 句柄,而 mouseButtonDownCallbackmouseButtonUpCallback、等等是相应事件触发时要执行的回调函数。你可以根据需要选择性地设置这些属性,以实现相应的鼠标事件处理。

Figure 窗口监听鼠标点击事件

要在 MATLAB 中监听鼠标点击事件,你可以使用 ButtonDownFcn 属性。简单的例子:

% 创建一个新的 Figure
figure;

% 设置 ButtonDownFcn 属性
set(gcf, 'ButtonDownFcn', @mouseClickCallback);

% 回调函数,处理鼠标点击事件
function mouseClickCallback(~, ~)
    % 获取当前鼠标位置
    currentPoint = get(gca, 'CurrentPoint');
    x = currentPoint(1, 1);
    y = currentPoint(1, 2);
    
    % 在命令窗口显示鼠标点击位置
    fprintf('Mouse Clicked at: x = %f, y = %f\n', x, y);
end

这个例子创建了一个新的 Figure,并设置了 ButtonDownFcn 属性为名为 mouseClickCallback 的回调函数。当鼠标在 Figure 上点击时,该回调函数会被调用,并显示当前鼠标的 x 和 y 坐标。

Figure 窗口监听鼠标移动事件

在 MATLAB 中,你可以使用 WindowButtonMotionFcn 属性来监听鼠标在 Figure 上的移动事件。简单的例子:

% 创建一个新的 Figure
figure;

% 设置 WindowButtonMotionFcn 属性
set(gcf, 'WindowButtonMotionFcn', @mouseMoveCallback);

% 回调函数,处理鼠标移动事件
function mouseMoveCallback(~, ~)
    % 获取当前鼠标位置
    currentPoint = get(gca, 'CurrentPoint');
    x = currentPoint(1, 1);
    y = currentPoint(1, 2);
    
    % 在命令窗口显示鼠标位置
    fprintf('Mouse Position: x = %f, y = %f\n', x, y);
end

这个例子创建了一个新的 Figure,并设置了 WindowButtonMotionFcn 属性为名为 mouseMoveCallback 的回调函数。当鼠标在 Figure 上移动时,该回调函数会被调用,并显示当前鼠标的 x 和 y 坐标。

Figure 窗口监听鼠标鼠标按下和松开事件

要同时监听 MATLAB Figure 上的鼠标按下和松开事件,你可以使用 WindowButtonDownFcnWindowButtonUpFcn 属性。示例:

% 创建一个新的 Figure
figure;

% 设置 WindowButtonDownFcn 和 WindowButtonUpFcn 属性
set(gcf, 'WindowButtonDownFcn', @mouseButtonDownCallback);
set(gcf, 'WindowButtonUpFcn', @mouseButtonUpCallback);

% 鼠标按下回调函数
function mouseButtonDownCallback(~, ~)
    disp('Mouse Button Down');
end

% 鼠标松开回调函数
function mouseButtonUpCallback(~, ~)
    disp('Mouse Button Up');
end

这个例子创建了一个新的 Figure,并分别设置了 WindowButtonDownFcnWindowButtonUpFcn 属性为两个不同的回调函数。当鼠标在 Figure 上按下时,mouseButtonDownCallback 函数会被调用,而当鼠标松开时,mouseButtonUpCallback 函数会被调用。

你可能感兴趣的:(MATLAB数学编程栏目,matlab,游戏,开发语言)