1. 程式人生 > >Matlab GUI滑鼠畫線

Matlab GUI滑鼠畫線

(程式碼: 1\UI_line.m)

% 窗體開啟前,先執行該函式
function UI_line_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
global ButtonDown pos1;  %宣告全域性變數
ButtonDown=[];   %標記滑鼠是否已經按下。1表示按下,否則表示滑鼠未按下
pos1=[];   %存放滑鼠的臨時位置
guidata(hObject, handles);


% 滑鼠按下時執行該函式
function figure1_WindowButtonDownFcn(hObject, eventdata, handles)

global ButtonDown pos1;
if strcmp(get(gcf,'SelectionType'),'normal')   %如果按下的是左鍵。strcmp判斷字串是否相同
ButtonDown=1;  %標記滑鼠已經按下
pos1=get(handles.axes1,'CurrentPoint');   %臨時存放滑鼠的當前位置
set(handles.text2,'String',num2str(pos1(1,1)));
end


% 滑鼠移動時,執行該函式
function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)

global ButtonDown pos1; 
if ButtonDown==1   %如果滑鼠已經按下
    pos=get(handles.axes1,'CurrentPoint');   
    line([pos1(1,1) pos(1,1)],[pos1(1,2) pos(1,2)],'LineWidth',4);  %畫直線, pos是一個一行二列的矩陣,pos(1,1)表示矩陣的第一行第一列的元素。
    pos1=pos;  %更新滑鼠的臨時位置
end


% 滑鼠鬆開時,執行該函式
function figure1_WindowButtonUpFcn(hObject, eventdata, handles)

global ButtonDown pos1;  %滑鼠鬆開後,初始化這兩個全域性變數
ButtonDown=[];
pos1=[];


相關推薦

Matlab GUI滑鼠

(程式碼: 1\UI_line.m) % 窗體開啟前,先執行該函式 function UI_line_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; global B

matlab plot函式,線型和顏色

matlab裡plot函式畫線時有很多的顏色和型別可以選擇,下面列舉一些。 常用的3+4+1=8種顏色:(速記:RGB、CYMK、W,即兩種色彩空間模型+白色) 'r'紅色 'g'綠色 'b'藍色

VTK用滑鼠+VTK座標轉換問題+例項

本人在用VTK實現在渲染視窗上用滑鼠畫線的探究過程。要在視窗上用滑鼠畫線首先要做的就是重寫滑鼠互動事件,於是就在官方網站找到重寫滑鼠響應事件的demo,然後再更改官方的demo,實現自己需要的功能。我的想法是:1.獲取滑鼠左鍵按下時的座標。2.獲取滑鼠左鍵上彈時的座標。3.用

matlab line函式

line(X,Y) line(X,Y,Z) line(X,Y,Z,'PropertyName',PropertyValue,...) line('XData', x, ‘YData’, y, ‘ZData’, z, …) line('XData', x, ‘YData’, y,

滑鼠圓(java GUI

話不多說,先看效果 當然你也可以發揮腦洞繪製更更棒的 原始碼如下: package javaBasic; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*;

MATLAB plot的顏色設定

標記符    顏色r          紅g          綠b          藍c          藍綠m          紫紅y          黃k          黑w          白 但是線的顏色是由紅綠藍(RGB)三原色組成的,通過設定三原色的權重可以改變線的顏色,

openCV 和GDI效率對照

ref sca lan sign ng2 trac 放大 平臺 gpu 一、 因為項目須要,原來用GDI做的畫線的功能。新的項目中考慮到垮平臺的問題。打算用openCV來實現。故此做個效率對照。 二、 2點做一條線,來測試效率。 用了相同的畫板大小---256*256的

圖形學--(中點畫法+Bresenham算法)

麻煩 .com etc 線上 += 相減 -s 像素點 ima 編程環境:codeblocks+EGE庫 用到的函數:putpixel(int x1,int y1,int color) 用某種顏色打亮一個坐標點。 這倆種算法都是用來在計算機上

AGG第三十九課 rasterizer_scanline_aa函數疑惑

agg rasterizer_scanline_aa頭文件#include<agg_rasterizer_scanline_aa.h>類型template<class Clip =rasterizer_sl_clip_int>class rasterizer_scanline_aa

函數Glib_Line算法的研究

函數實現 關系 簡單 void 其他 橫坐標x 發現 函數代碼 div 在這裏首先先簡單把我對函數的功能的理解闡述一下,方便後面的分析:Glib_Line函數實現的功能是通過參數給定(x1,y1,x2,y2,color),來確定起點(x1,y1)和終點

計算機圖形學(二)輸出圖元_3_算法_2_DDA算法

通過 程序 之間 tro 取整 xen git 方程 class DDA算法? ? ? ? 數字微分分析儀(digital differential analyzer, DDA)方法是一種線段掃描轉換算法。基於使用等式(3

117.C語言實現桌面輸出圖片,桌面輸出文字,桌面

ttext use nta 畫線 AI () als div oid 通過獲取窗口句柄,然後獲取窗口DC,然後畫圖 1 #include <Windows.h> 2 #include <stdio.h> 3 4 //桌面畫線

canvas

document rgba pla lan border draw ctx 多邊形 正方 一、canvas是基於狀態的繪圖環境 1、canvas是基於狀態的繪制 context.moveTo(100,100); context.lineTo(700,700); co

[學習一個] Matlab GUI 學習筆記 Ⅰ

blank 技術分享 提問 string 自學 水平 crop AD pin Matlab GUI 學習筆記 Ⅰ 1. Foreword Matlab 是嚴格意義上的編程語言嗎?曾經有人告訴我他是通過 Matlab 學會了面對對象編程,我是不信的,但這依然不妨礙它在特殊

Unity 自定義編輯器窗口

狀態 nbsp ongui shmat 定義 技術 load oid clas 最近在學習狀態機, 想自己實現一個可視化編輯器, 需要將多個狀態之間用線條連接起來, 效果如下: 代碼如下: Material m;Vector2 start;Vector2 end

Unity 實現《物理》Draw Physics Line 總覽

實現 inf .com 轉換成 add lin com src unity 初版demo的實現,牽涉到三部分:   1.畫線,並添加物理事件       (1)獲取鼠標輸入       (2)轉換成屏幕坐標,然後設置到LineRender中進行繪制       (

計算機圖形學(三種算法)

直線 情況 算法 n) src 隨著 多邊形 取整 兩個 第二章:光柵圖形學算法 1、光柵顯示器:光柵掃描式圖形顯示器簡稱光柵顯示器,是畫點設備,可看作是一個點陣單元發生器,並可控制每個點陣單元的亮度 2、由來:隨著光柵顯示器的出現,為了在計算機上處理、顯示圖形,需要發展一

CSS實現:標題兩側效果

tail ext font ack pla round left pan mage 如圖: html代碼: 1 <div class="detail-news"> 2 <h5 class="detail-news-title">

【原始碼】MATLAB GUI例項指導(41個例子,47個疑問解答)

MATLAB GUI的41個例項幫助大家學習如何在沒有GUIDE的情況下編寫圖形使用者介面程式。41個例項主要涉及以下47個問題: 如何在uicontrol中操作字串?(見GUI_1, 2, 4, 5, 13, 14, 15, 20, 21, 22, 37) 如何使u

canvas 實現滑鼠出矩形

    <!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <m