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

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

?? cartesian.h

?? msp430心電儀上位機的心電圖顯示程序。為了顯示EKG
?? H
字號:
// Cartesian.H,v 0.9
//
// Copyright 2000 by Roman Kantor.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public License
// version 2 as published by the Free Software Foundation.
//
// This library is distributed  WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY 
// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Library General Public License for more details.
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.


#ifndef _Cartesian_h_
#define _Cartesian_h_

#include <FL/Fl_Box.H>

#define DEFAULT_POINT_SIZE 4
#define CA_DEFAULT_LABEL_SIZE 12




enum Ca_Damage {CA_DAMAGE_ALL=1, CA_DAMAGE_ADD=2};

enum Ca_When{CA_WHEN_MIN=1,CA_WHEN_MAX=2};

enum Ca_AxisAlign{CA_LEFT=0, CA_RIGHT=1, CA_BOTTOM=CA_LEFT, CA_TOP=CA_RIGHT,
	CA_CENTER=3,CA_ALIGNMENT=3,CA_NO_LABELS=32, CA_NO_TICS=64, CA_LINE=128};

enum Ca_PointStyle{CA_SIMPLE=0,CA_ROUND=1,CA_SQUARE=2,CA_UP_TRIANGLE=3, CA_DOWN_TRIANGLE=4,
	CA_DIAMOND=5,CA_NO_POINT=6, CA_POINT_STYLE=127, CA_BORDER=128};

enum Ca_GridVisible{
	CA_MINOR_GRID=0xF,CA_LEFT_MINOR_TICK=0x1, CA_BOTTOM_MINOR_TICK=CA_LEFT_MINOR_TICK,CA_RIGHT_MINOR_TICK=0x2, CA_TOP_MINOR_TICK=CA_RIGHT_MINOR_TICK, CA_MINOR_TICK=0x3,
	CA_MAJOR_GRID=0xF0, CA_LEFT_MAJOR_TICK=0x10, CA_BOTTOM_MAJOR_TICK=CA_LEFT_MAJOR_TICK,CA_RIGHT_MAJOR_TICK=0x20, CA_TOP_MAJOR_TICK=CA_RIGHT_MAJOR_TICK,CA_MAJOR_TICK=0x30,
	CA_LABEL_GRID=0xF00,CA_LEFT_LABEL_TICK=0x100,CA_BOTTOM_LABEL_TICK=CA_LEFT_LABEL_TICK,CA_RIGHT_LABEL_TICK=0x200, CA_TOP_LABEL_TICK=CA_RIGHT_LABEL_TICK, CA_LABEL_TICK=0x300,
	CA_ALWAYS_VISIBLE=0x1000,CA_FRONT=0x2000};

enum Ca_AxisType{CA_LIN=0, CA_LOG=1, CA_REV=2};









class Ca_Canvas;
class Ca_Axis_;
class Ca_Object_;
class Ca_ObjectChain;
//class Cartesian;


///////////////////////////////////////////////////////////////////////////
class Ca_ObjectChain{
public:
    Ca_Object_ *object;
    Ca_ObjectChain *next;
};


///////////////////////////////////////////////////////////////////////////


class Ca_Canvas:public Fl_Box{

    friend class Ca_Axis_;
    friend class Ca_X_Axis;
    friend class Ca_Y_Axis;
    friend class Ca_Object_;

    static Ca_Canvas *current_;
    int replot_;
    Ca_Axis_ * last_axis_;
    int border_;
    Ca_Axis_ *current_x_;
    Ca_Axis_ *current_y_;
    Ca_ObjectChain * first_object_;
    Ca_ObjectChain * last_object_;
    Ca_ObjectChain * last_plotted_;
    void add_object(Ca_Object_ *object);
    
    /* No function body - prevents copy construction/assignment */
    Ca_Canvas(const Ca_Canvas &);    
    const Ca_Canvas & operator=(const Ca_Canvas &); 

protected:
    void draw();

public:
    static Ca_Canvas * current(){return current_;};
    static void current(Ca_Canvas * _current){current_=_current;}
    void current_x(Ca_Axis_ * axis){current_x_=axis;};
    void current_y(Ca_Axis_ * axis){current_y_=axis;};
    Ca_Axis_ * current_x(){return current_x_;};
    Ca_Axis_ * current_y(){return current_y_;};
    void clear();
    int border(){return border_;};
    void border(int border);
	Ca_ObjectChain * objects(){return first_object_;};
    Ca_Canvas(int x, int y, int w, int h, const char *label=0);
    ~Ca_Canvas();
    
};


///////////////////////////////////////////////////////////////////////////

class Ca_Axis_:public Fl_Box{

    friend class Ca_Canvas;

    Ca_Axis_ *previous_axis_;
	
	

protected:
	int scale_;
	int next_tick(int &tick_index, double &tick_value, int &tick_order, double &interval_);
	bool valid_;
	double k_;
    double q_;
    const char *label_format_;
    Fl_Color minor_grid_color_;
    Fl_Color major_grid_color_;
    Fl_Color label_grid_color_;
    int minor_grid_style_;
    int major_grid_style_;
    int label_grid_style_;
    int minor_grid_width_;
    int major_grid_width_;
    int label_grid_width_;
    char * minor_grid_dashes_;
    char * major_grid_dashes_;
    char * label_grid_dashes_;
    int grid_visible_;
    double tick_interval_;
    int tick_separation_;
    int tick_length_;
	int tick_width_;
    int major_step_;
    int label_step_;
    Ca_Canvas * canvas_;
    unsigned char  axis_align_;
    Fl_Font label_font_face_;
    int label_font_size_;

    double min_;
    double max_;
    int min_pos_;
    int max_pos_;
    int border_;
    Fl_Color axis_color_;
    
    virtual int min_pos()=0;
    virtual int max_pos()=0;
    int update();
    virtual void draw_grid()=0;
    
public:
    virtual void current()=0;
    double position(double);
    double value(double);
    Ca_Canvas * canvas(){return canvas_;};
    int border(){return border_;};
    void border(int border){border_=border;damage(CA_DAMAGE_ALL);}
    double minimum(){return min_;}; 
    double maximum(){return max_;};
    void minimum(double x);
    void maximum(double x);
	void clear(){valid_=0;};
	int cleared(){return !valid_;};
    
    void rescale(int when, double x);
	void rescale_move(int when, double  x);
    void tick_interval(double interval) {tick_interval_=interval; damage(CA_DAMAGE_ALL);};
    double tick_interval(){return tick_interval_;};
    void tick_separation(int separation) {tick_separation_=separation; damage(CA_DAMAGE_ALL);};
    int tick_separation(){return tick_separation_;};
    void tick_length(int length){tick_length_=length; damage(CA_DAMAGE_ALL);};
    int tick_length(){return tick_length_;};
	void tick_width(int width){tick_width_=width; damage(CA_DAMAGE_ALL);};
    int tick_width(){return tick_width_;};
    void major_step(int step){major_step_=step;damage(CA_DAMAGE_ALL);};
    int major_step(){return major_step_;};
    void label_step(int step){label_step_=step;damage(CA_DAMAGE_ALL);};
    int label_step(){return label_step_;};
    void label_format(const char *format){label_format_=format; damage(CA_DAMAGE_ALL);};
    const char* label_format(){return label_format_;};
    void label_font(Fl_Font face){label_font_face_=face; damage(CA_DAMAGE_ALL);};
    Fl_Font label_font(){return label_font_face_;};
    void label_size(int size){label_font_size_=size; damage(CA_DAMAGE_ALL);};
    int label_size(){return label_font_size_;};
    void axis_color(Fl_Color _axis_color){axis_color_=_axis_color; damage(CA_DAMAGE_ALL);};
    void minor_grid_color(Fl_Color color){minor_grid_color_=color; canvas_->damage(CA_DAMAGE_ALL);};
    Fl_Color minor_grid_color(){return minor_grid_color_;};
    void minor_grid_style(int style, int width=0, char * dashes=0){minor_grid_style_=style;minor_grid_width_=width;minor_grid_dashes_=dashes; canvas_->damage(CA_DAMAGE_ALL);};
	void minor_grid_style(int * style, int * width=0, char ** dashes=0){
		if (style) *style=minor_grid_style_;
		if (width) *width=minor_grid_width_;
		if (dashes) *dashes=minor_grid_dashes_;
	};
    void major_grid_color(Fl_Color color){major_grid_color_=color;  canvas_->damage(CA_DAMAGE_ALL);};
    Fl_Color major_grid_color(){return major_grid_color_;};
    void major_grid_style(int style, int width=0, char * dashes=0){major_grid_style_=style; major_grid_width_=width; major_grid_dashes_=dashes; canvas_->damage(CA_DAMAGE_ALL);};
	void major_grid_style(int * style, int * width=0, char ** dashes=0){
		if (style) *style=major_grid_style_;
		if (width) *width=major_grid_width_;
		if (dashes) *dashes=major_grid_dashes_;
	};
    void label_grid_color(Fl_Color color){label_grid_color_=color;  canvas_->damage(CA_DAMAGE_ALL);};
    Fl_Color label_grid_color(){return label_grid_color_;};
    void label_grid_style(int style, int width=0, char * dashes=0){label_grid_style_=style; label_grid_width_=width; label_grid_dashes_=dashes; canvas_->damage(CA_DAMAGE_ALL);};
	void label_grid_style(int * style, int * width=0, char ** dashes=0){
		if (style) *style=label_grid_style_;
		if (width) *width=label_grid_width_;
		if (dashes) *dashes=label_grid_dashes_;
	};
    void grid_visible(int visible){grid_visible_=visible;canvas_->damage(CA_DAMAGE_ALL);};
    int grid_visible(){return grid_visible_;};
    void axis_align(unsigned char align){axis_align_=align; damage(CA_DAMAGE_ALL);};
    unsigned char axis_align(){return axis_align_;};
	void scale(int s){if(s!=scale_){redraw(); canvas_->redraw();} scale_=s;};
	int scale(){return scale_;};
    
    Ca_Axis_(int x, int y, int w, int h, const char * label=0);
    ~Ca_Axis_();
};


//////////////////////////////////////////////////////////////////////
class Ca_X_Axis: public Ca_Axis_{

protected:
    int min_pos();
    int max_pos();
    void draw();
    void draw_grid();
public:
    void current();
    Ca_X_Axis(int x, int y, int w, int h, const char * label=0);
	~Ca_X_Axis();

};

///////////////////////////////////////////////////////////////////////////

class Ca_Y_Axis: public Ca_Axis_{
    int min_pos();
    int max_pos();
    void draw();
    void draw_grid();
public:
    void current();
    Ca_Y_Axis(int x, int y, int w, int h, const char * label=0);
	~Ca_Y_Axis();
    
};

///////////////////////////////////////////////////////////////////////////

class Ca_Object_{
    
	friend class Ca_Canvas;
    friend class Ca_Axis_;
    friend class Ca_Y_Axis;
    friend class Ca_X_Axis;

    // No function body - prevents copy construction/assignment 
    Ca_Object_(const Ca_Object_ &);    
    const Ca_Object_ & operator=(const Ca_Object_ &);
    
protected:
    Ca_Canvas *canvas_;
    Ca_Axis_ *x_axis_;
    Ca_Axis_ *y_axis_;
    virtual void draw()=0;
        
public:
    Ca_Object_(Ca_Canvas * canvas=0);
    virtual ~Ca_Object_();

};

///////////////////////////////////////////////////////////////////////////

class Ca_Point:public Ca_Object_{

protected:
    void draw();

public:
    double x;
    double y;
    int style;
    int size;
    Fl_Color color;
    Fl_Color border_color;
	int border_width;
    Ca_Point(double _x, double _y, Fl_Color color=FL_BLACK, int style=CA_SIMPLE, int size=DEFAULT_POINT_SIZE, Fl_Color border_color=FL_BLACK, int border_width=0);
};

///////////////////////////////////////////////////////////////////////////

class Ca_LinePoint:public Ca_Point{

protected:
    void draw();

public:
    Ca_LinePoint *previous;
	int line_width;
    Ca_LinePoint(Ca_LinePoint *_previous, double _x, double _y, int line_width, Fl_Color color=FL_BLACK,  int style=CA_SIMPLE, int size=DEFAULT_POINT_SIZE, Fl_Color border_color=FL_BLACK, int border_width=0);
    Ca_LinePoint(Ca_LinePoint *_previous, double _x, double _y);
};


///////////////////////////////////////////////////////////////////////////

class Ca_PolyLine:public Ca_LinePoint{
	
protected:
	void draw();
public:
	int line_style;
	Ca_PolyLine * next;
	Ca_PolyLine(Ca_PolyLine *_previous, double _x, double _y,int line_style, int line_width=0, Fl_Color color=FL_BLACK, int style=CA_SIMPLE, int size=DEFAULT_POINT_SIZE,  Fl_Color border_color=FL_BLACK, int border_width=0);
	Ca_PolyLine(Ca_PolyLine *_previous, double _x, double _y);
};

///////////////////////////////////////////////////////////////////////////

class Ca_Line:protected Ca_Point{

protected:
	void draw();

public:
	Ca_Point::style; //just making public usefull data
	Ca_Point::size;
	Ca_Point::color;
    Ca_Point::border_color;
	Ca_Point::border_width;

	int line_style;
	int line_width;
	int n;
	double * data;
	double * data_2;

	Ca_Line(int _n, double *_data, double *_data_2, int _line_style, int _line_width=0, Fl_Color color=FL_BLACK, int style=CA_SIMPLE, int size=DEFAULT_POINT_SIZE, Fl_Color border_color=FL_BLACK, int border_width=0);
	Ca_Line(int _n, double *_data, int _line_style, int _line_width=0, Fl_Color _color=FL_BLACK, int style=CA_SIMPLE, int size=DEFAULT_POINT_SIZE, Fl_Color border_color=FL_BLACK, int border_width=0);
};

///////////////////////////////////////////////////////////////////////////

class Ca_Text:public Ca_Object_{

protected:
	void draw();
	
public:
	double x1,x2,y1,y2;
	char * label;
	uchar align;
	Fl_Color label_color;
	Fl_Font label_font;
	int label_size;
	Ca_Text(double _x1, double _x2, double _y1, double _y2, char *_label, uchar _align=FL_ALIGN_CENTER, Fl_Font _label_font=FL_HELVETICA, int _label_size=CA_DEFAULT_LABEL_SIZE, Fl_Color _label_color=FL_BLACK);
	Ca_Text(double x, double y, char *_label=0, uchar _align=FL_ALIGN_CENTER, Fl_Font _label_font=FL_HELVETICA, int _label_size=CA_DEFAULT_LABEL_SIZE, Fl_Color _label_color=FL_BLACK);
};

///////////////////////////////////////////////////////////////////////////

class Ca_Bar:public Ca_Text{
protected:
	void draw();
public:
	Fl_Color color;
	Fl_Color border_color;
	int border_width;
	Ca_Bar(double _x1, double _x2, double _y1, double _y2, Fl_Color _color=FL_RED,  Fl_Color _border_color=FL_BLACK, int _border_width=0,  char *_label=0, uchar _align=FL_ALIGN_CENTER, Fl_Font _label_font=FL_HELVETICA, int _label_size=CA_DEFAULT_LABEL_SIZE, Fl_Color _label_color=FL_BLACK);
};


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看在线综合| 在线一区二区三区做爰视频网站| 成人精品高清在线| 欧美另类一区二区三区| 欧美国产精品专区| 日本欧美一区二区在线观看| 成人ar影院免费观看视频| 欧美日韩精品一二三区| 国产精品理论片在线观看| 天天av天天翘天天综合网| 大胆亚洲人体视频| 日韩视频在线你懂得| ...av二区三区久久精品| 极品瑜伽女神91| 欧美日韩成人综合天天影院| 国产精品乱码一区二三区小蝌蚪| 五月天中文字幕一区二区| eeuss影院一区二区三区| 日韩一卡二卡三卡四卡| 亚洲18影院在线观看| 91视频观看视频| 国产日韩成人精品| 久久国产三级精品| 日韩一区二区三区四区| 亚洲午夜在线电影| 色婷婷av一区二区三区大白胸| 久久久激情视频| 国产在线精品不卡| 欧美xxx久久| 久久99九九99精品| 欧美一区二区不卡视频| 亚洲福利一二三区| 欧美午夜精品免费| 亚洲动漫第一页| 欧美在线一区二区| 亚洲夂夂婷婷色拍ww47 | 亚洲欧美国产三级| 成人精品国产福利| 最新不卡av在线| 99re亚洲国产精品| 亚洲美女视频一区| 欧美中文字幕一区二区三区亚洲 | 成人动漫一区二区三区| 欧美激情中文不卡| bt欧美亚洲午夜电影天堂| 亚洲欧洲av一区二区三区久久| 不卡一区二区中文字幕| 国产精品美女久久久久aⅴ国产馆| 高清不卡一区二区在线| 中文天堂在线一区| 色婷婷av一区二区三区软件| 亚洲制服丝袜在线| 欧美一级片在线观看| 激情小说亚洲一区| 国产欧美日韩三区| 91黄色激情网站| 午夜精品久久久久久久久久久| 欧美一级日韩不卡播放免费| 国产一区二区毛片| 亚洲色图欧美激情| 91精品国产综合久久久久久漫画| 国产又粗又猛又爽又黄91精品| 国产精品沙发午睡系列990531| 91黄视频在线观看| 麻豆高清免费国产一区| 国产欧美日韩久久| 欧美亚洲禁片免费| 国产一区二区三区在线观看免费视频 | 亚洲欧洲av色图| 欧美日韩一级二级| 91福利精品第一导航| 免播放器亚洲一区| 国产精品麻豆网站| 日韩一区二区三区视频在线| 国产成人av电影在线| 亚洲一区二区三区免费视频| 久久综合资源网| 91网站视频在线观看| 久久精品国产久精国产爱| 亚洲日韩欧美一区二区在线| 91麻豆精品国产91久久久久久 | 中文字幕国产精品一区二区| 91成人网在线| 国产成人亚洲综合a∨婷婷| 亚洲精品大片www| 久久亚洲综合av| 欧美色图片你懂的| 高清在线成人网| 青青草91视频| 一区二区在线观看免费视频播放| 亚洲精品一区二区三区香蕉| 欧美日韩视频在线第一区| 不卡av在线网| 国产一区在线观看麻豆| 天天操天天干天天综合网| 国产精品伦一区| 精品剧情v国产在线观看在线| 欧美少妇一区二区| 99久久er热在这里只有精品66| 极品美女销魂一区二区三区免费| 国内精品免费在线观看| 天堂蜜桃一区二区三区| 一片黄亚洲嫩模| 国产精品婷婷午夜在线观看| 精品国产亚洲一区二区三区在线观看| 在线观看一区二区精品视频| 成人精品小蝌蚪| 国产老肥熟一区二区三区| 日韩av二区在线播放| 一区二区久久久| 亚洲嫩草精品久久| 亚洲同性同志一二三专区| 国产精品欧美精品| 久久婷婷色综合| 欧美精品一区二区三区蜜桃 | 香蕉av福利精品导航| 亚洲激情综合网| 国产精品二三区| 国产精品久久久久婷婷| 国产亚洲短视频| 久久精品人人做| 久久久久97国产精华液好用吗| 精品国产露脸精彩对白| 欧美mv日韩mv亚洲| 精品国产乱码久久久久久图片 | 欧美日韩精品三区| 欧美三级乱人伦电影| 欧美日韩精品三区| 欧美一区二区三区色| 欧美一级一区二区| 精品少妇一区二区三区| 久久综合九色综合久久久精品综合| 日韩一区二区在线免费观看| 日韩一区二区在线看片| 精品国产百合女同互慰| 久久综合给合久久狠狠狠97色69| 久久午夜色播影院免费高清| 国产婷婷色一区二区三区| 欧美激情一区不卡| 亚洲欧美日韩电影| 午夜精品福利在线| 狠狠v欧美v日韩v亚洲ⅴ| 国产盗摄视频一区二区三区| 亚洲精品一区二区三区影院| 久久久久久久久久久久久女国产乱| 久久综合狠狠综合久久激情 | 欧美一级艳片视频免费观看| 精品免费一区二区三区| 国产午夜一区二区三区| 亚洲特级片在线| 日本不卡中文字幕| 国产成人精品在线看| 91麻豆精品在线观看| 91精品在线免费| 国产视频一区不卡| 一区二区免费看| 国产在线国偷精品免费看| 99v久久综合狠狠综合久久| 欧美三级三级三级| 国产日韩欧美激情| 一区二区三区色| 国产在线精品免费av| 色久优优欧美色久优优| 日韩欧美国产一区在线观看| 国产精品毛片大码女人| 五月婷婷综合网| 成人精品免费网站| 欧美精品777| 国产精品色眯眯| 日本成人在线网站| 色激情天天射综合网| 久久久精品天堂| 偷拍亚洲欧洲综合| caoporn国产精品| 亚洲香蕉伊在人在线观| 国产高清一区日本| 日韩三级高清在线| 一区二区在线观看免费视频播放| 国产精品99久久久久久似苏梦涵| 欧美午夜精品一区二区三区| 中文字幕精品在线不卡| 免费av网站大全久久| 91黄色免费网站| 中文字幕人成不卡一区| 韩国av一区二区三区四区| 欧美日韩免费视频| 日韩久久一区二区| 国产成人8x视频一区二区| 欧美一区二区精美| 视频一区中文字幕| 欧洲精品在线观看| 综合精品久久久| 国产jizzjizz一区二区| 精品少妇一区二区三区 | 美女久久久精品| 欧美日韩视频第一区| 一区二区三区高清| 色欧美片视频在线观看| 中文字幕在线一区二区三区| 国产成人精品网址|