📄 graph_c.hh
字号:
// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-// ---------------------------------------------------------------------------// libgraphc - X11 drawing library// Copyright (C) 2002, 2003 ONERA//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License// as published by the Free Software Foundation; either version 2 of// the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful, but// WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307// USA//// $Id: graph_c.hh,v 3.2 2003/02/19 17:20:28 breholee Exp $ // ---------------------------------------------------------------------------#ifdef WITH_X11#ifndef GRAPH_C_HH#define GRAPH_C_HH#include <config.h>/*--------------------------------------------------------------------------*//*---definition des attributs graphiques------------------------------------*//*--------------------------------------------------------------------------*/ typedef enum {PLEIN, POINTILLE1, POINTILLE2, POINTILLE3} style; typedef enum {BLACK, RED, GREEN, BLUE, GRAY, CYAN, YELLOW, MAGENTA, BROWN, ORANGE, PINK, VIOLET, WHITE} couleur; typedef enum {COURIER, COURIER_GRAS, COURIER_OBLIQUE, COURIER_GRAS_OBLIQUE, HELVETICA, TIMES, SYMBOL} policecar; typedef enum {TAILLE8, TAILLE10, TAILLE12, TAILLE14, TAILLE18, TAILLE24} taillecar; typedef enum {COUL_UNIE, MOTIF1, MOTIF2, MOTIF3, MOTIF4, MOTIF5, MOTIF6, MOTIF7, MOTIF8, MOTIF9} mode_remp; /*--------------------------------------------------------------------------*//*---definition des types structures----------------------------------------*//*--------------------------------------------------------------------------*/ typedef struct {short X; short Y;} point; typedef struct {point TAB[100];} tpoint; typedef struct {char TAC[100];} tchar; typedef struct {char TAD[50];} tcla1; typedef struct {char TAE[50];} tcla2; /*===============================*/ /* figures simples */ /* coordonnees mode origine */ /*===============================*/ typedef struct {point POI_COORD; /* point */ couleur POI_COULEUR;} pointt; typedef struct {point LIG_DEBUT; /* ligne */ point LIG_FIN; style LIG_STYLE; couleur LIG_COULEUR;} ligne; typedef struct {point REC_DEBUT; /* rectangle*/ unsigned long REC_LARGEUR; unsigned long REC_HAUTEUR; style REC_STYLE; couleur REC_COULEUR;} rectangle; typedef struct {point CER_CENTRE; /* cercle */ unsigned long CER_RAYON; style CER_STYLE; couleur CER_COULEUR;} cercle; typedef struct {int POL_NSOMMETS; /* polygone */ style POL_STYLE; couleur POL_COULEUR; point POL_TABPOINTS[100];} polygone; typedef struct {point ARC_DEBUTARC; /* arc simple */ unsigned long ARC_LARGEUR; unsigned long ARC_HAUTEUR; int ARC_ANGLEDROIT; int ARC_ANGLEGAUCHE; style ARC_STYLE; couleur ARC_COULEUR;} arc; /*==================================*/ /* figures pleines */ /* coordonnees mode origine */ /* fermeture de l arc par 2 rayons */ /* remplissage du polygone par la */ /* regle pair/impair */ /*==================================*/ typedef struct {point PREC_DEBUT; /* rectangle */ unsigned long PREC_LARGEUR; unsigned long PREC_HAUTEUR; mode_remp PREC_REMPLI; couleur PREC_COULEUR;} rectangler; typedef struct {point PCER_CENTRE; /* cercle */ unsigned long PCER_RAYON; mode_remp PCER_REMPLI; couleur PCER_COULEUR;} cercler; typedef struct {int PPOL_NSOMMETS; /* polygone */ mode_remp PPOL_REMPLI; couleur PPOL_COULEUR; point PPOL_TABPOINTS[100];} polygoner; typedef struct {point PARC_DEBUTARC; /* arc simple*/ unsigned long PARC_LARGEUR; unsigned long PARC_HAUTEUR; int PARC_ANGLEDROIT; int PARC_ANGLEGAUCHE; mode_remp PARC_REMPLI; couleur PARC_COULEUR;} arcr; /*===============================*/ /* chaines de caracteres */ /*===============================*/ typedef struct {point TEX_DEBUTCHAINE; policecar TEX_POLICE; taillecar TEX_TAILLE; couleur TEX_COULEUR; char TEX_CHAINE[100];} texte; /*--------------------------------------------------------------------------*//* definitions des fonctions et des procedures *//* pour les figures simples *//*--------------------------------------------------------------------------*/ /*---module POINT---*/ /*==================*/ extern pointt Definex(point COORD, couleur WCOULEUR); extern void Drawx(pointt P); extern void Change_attribx(pointt *P, couleur WCOULEUR); extern void Undrawx(pointt P); extern void Movex(pointt *P, point COORD); extern void Duplicx(pointt P, pointt *PD, point COORD); extern point Coordx(pointt P); extern couleur Coulx(pointt P); /*---module LIGNE---*/ /*==================*/ extern ligne Definel(point DEBUT, point FIN, style WSTYLE, couleur WCOULEUR); extern void Drawl(ligne L); extern void Change_attribl(ligne *L, style WSTYLE, couleur WCOULEUR); extern void Undrawl(ligne L); extern void Movel(ligne *L, short TRANSX, short TRANSY); extern void Duplicl(ligne L, ligne *LD, short TRANSX, short TRANSY); extern point Debutl(ligne L); extern point Finl(ligne L); extern style Stylel(ligne L); extern couleur Coull(ligne L); /*---module RECTANGLE---*/ /*======================*/ extern rectangle Definer(point DEBUT, unsigned long LARGEUR, unsigned long HAUTEUR, style WSTYLE, couleur WCOULEUR); extern void Drawr(rectangle R); extern void Change_attribr(rectangle *R, style WSTYLE, couleur WCOULEUR); extern void Undrawr(rectangle R); extern void Mover(rectangle *R, point DEBUT); extern void Duplicr(rectangle R, rectangle *RD, point DEBUT); extern point Debutr(rectangle R); extern unsigned long Largr(rectangle R); extern unsigned long Hautr(rectangle R); extern style Styler(rectangle R); extern couleur Coulr(rectangle R); /*----module CERCLE----*/ /*=====================*/ extern cercle Definec(point CENTRE, unsigned long RAYON, style WSTYLE, couleur WCOULEUR); extern void Drawc(cercle C); extern void Change_attribc(cercle *C, style WSTYLE, couleur WCOULEUR); extern void Undrawc(cercle C); extern void Movec(cercle *C, point CENTRE); extern void Duplicc(cercle C, cercle *CD, point CENTRE); extern point Centrec(cercle C); extern unsigned long Rayonc(cercle C);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -