version 1.32, 2014/08/20 16:51:34 |
version 1.36, 2017/09/04 01:57:53 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/plot/if.c,v 1.31 2014/07/05 03:55:42 saito Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/plot/if.c,v 1.35 2017/09/01 01:48:40 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 128 int plot(NODE arg,int fn){ |
|
Line 128 int plot(NODE arg,int fn){ |
|
LIST xrange,yrange,zrange,wsize; |
LIST xrange,yrange,zrange,wsize; |
STRING wname; |
STRING wname; |
V v; |
V v; |
|
Real r; |
|
double rr; |
|
|
formula=(P)ARG0(arg); |
formula=(P)ARG0(arg); |
xrange=(LIST)ARG1(arg); |
xrange=(LIST)ARG1(arg); |
Line 145 int plot(NODE arg,int fn){ |
|
Line 147 int plot(NODE arg,int fn){ |
|
n=BDY(yrange);can->vy=VR((P)BDY(n));n=NEXT(n); |
n=BDY(yrange);can->vy=VR((P)BDY(n));n=NEXT(n); |
can->qymin=(Q)BDY(n);n=NEXT(n);can->qymax=(Q)BDY(n); |
can->qymin=(Q)BDY(n);n=NEXT(n);can->qymax=(Q)BDY(n); |
can->ymin=ToReal(can->qymin);can->ymax=ToReal(can->qymax); |
can->ymin=ToReal(can->qymin);can->ymax=ToReal(can->qymax); |
} |
} else if ( !formula || NUM(formula) ) { |
|
devalr(CO,(Obj)formula,(Obj *)&r); rr = ToReal(r); |
|
can->ymin=rr-1; can->ymax=rr+1; |
|
} |
can->mode=fn; |
can->mode=fn; |
if(zrange){ |
if(zrange){ |
n=NEXT(BDY(zrange)); |
n=NEXT(BDY(zrange)); |
Line 170 int plot(NODE arg,int fn){ |
|
Line 175 int plot(NODE arg,int fn){ |
|
can->formula=formula; |
can->formula=formula; |
if(can->mode==modeNO(PLOT)){ |
if(can->mode==modeNO(PLOT)){ |
//plot |
//plot |
|
can->prec=argc(arg)==7 ? QTOS((Q)ARG6(arg)) : 0; |
plotcalc(can); |
plotcalc(can); |
create_canvas(can); |
create_canvas(can); |
plot_print(display,can); |
plot_print(display,can); |
Line 210 int memory_plot(NODE arg,LIST *bytes){ |
|
Line 216 int memory_plot(NODE arg,LIST *bytes){ |
|
double **tabe; |
double **tabe; |
int i; |
int i; |
BYTEARRAY barray; |
BYTEARRAY barray; |
Q qw,qh; |
Q qw,qh,prec; |
|
|
formula=(P)ARG0(arg); |
formula=(P)ARG0(arg); |
xrange=(LIST)ARG1(arg); |
xrange=(LIST)ARG1(arg); |
Line 247 int memory_plot(NODE arg,LIST *bytes){ |
|
Line 253 int memory_plot(NODE arg,LIST *bytes){ |
|
can->wname=""; |
can->wname=""; |
can->formula=formula; |
can->formula=formula; |
if( can->mode==modeNO(PLOT)){ |
if( can->mode==modeNO(PLOT)){ |
|
can->prec = argc(arg)==6 ? QTOS((Q)ARG5(arg)) : 0; |
plotcalc(can); |
plotcalc(can); |
memory_print(can,&barray); |
memory_print(can,&barray); |
STOQ(can->width,qw); STOQ(can->height,qh); |
STOQ(can->width,qw); STOQ(can->height,qh); |
Line 283 int plotover(NODE arg){ |
|
Line 290 int plotover(NODE arg){ |
|
for(vl0=vl;vl0;vl0=NEXT(vl0)) |
for(vl0=vl;vl0;vl0=NEXT(vl0)) |
if(vl0->v->attr==(pointer)V_IND) |
if(vl0->v->attr==(pointer)V_IND) |
if(vl->v!=can->vx && vl->v!=can->vy)return -1; |
if(vl->v!=can->vx && vl->v!=can->vy)return -1; |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
set_drawcolor(can->color); |
set_drawcolor(can->color); |
#endif |
#endif |
current_can=can; |
current_can=can; |
can->formula=formula; |
can->formula=formula; |
if(can->mode==modeNO(PLOT)){ |
if(can->mode==modeNO(PLOT)){ |
|
can->prec = argc(arg)==3 ? QTOS((Q)ARG2(arg)) : 0; |
plotcalc(can); |
plotcalc(can); |
plot_print(display,can); |
plot_print(display,can); |
} else ifplotmain(can); |
} else ifplotmain(can); |
copy_to_canvas(can); |
copy_to_canvas(can); |
can->color=orgcolor; |
can->color=orgcolor; |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
set_drawcolor(can->color); |
set_drawcolor(can->color); |
#endif |
#endif |
return id; |
return id; |
} |
} |
|
|
int drawcircle(NODE arg){ |
int drawcircle(NODE arg){ |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
int id,index,wx,wy,wr; |
int id,index,wx,wy,wr; |
unsigned int c; |
unsigned int c; |
pointer ptr; |
pointer ptr; |
Line 377 int draw_obj(NODE arg){ |
|
Line 385 int draw_obj(NODE arg){ |
|
set_lasterror("draw_obj : invalid request"); |
set_lasterror("draw_obj : invalid request"); |
return -1; |
return -1; |
} |
} |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
set_drawcolor(can->color); |
set_drawcolor(can->color); |
#endif |
#endif |
return 0; |
return 0; |
Line 410 int draw_string(NODE arg){ |
|
Line 418 int draw_string(NODE arg){ |
|
x=(int)ToReal((Q)ARG0(pos)); |
x=(int)ToReal((Q)ARG0(pos)); |
y=(int)ToReal((Q)ARG1(pos)); |
y=(int)ToReal((Q)ARG1(pos)); |
draw_character_string(display,can,x,y,str,color); |
draw_character_string(display,can,x,y,str,color); |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
set_drawcolor(can->color); |
set_drawcolor(can->color); |
#endif |
#endif |
return 0; |
return 0; |
Line 565 void ifplot_resize(struct canvas *can,POINT spos,POINT |
|
Line 573 void ifplot_resize(struct canvas *can,POINT spos,POINT |
|
if(can->precise && !can->wide){ |
if(can->precise && !can->wide){ |
current_can=can; |
current_can=can; |
alloc_pixmap(ncan); |
alloc_pixmap(ncan); |
#if defined(VISUAL) |
#if defined(VISUAL) || defined(__MINGW32__) |
ncan->real_can=can; |
ncan->real_can=can; |
#endif |
#endif |
qifplotmain(ncan); |
qifplotmain(ncan); |
Line 628 void plot_resize(struct canvas *can,POINT spos,POINT e |
|
Line 636 void plot_resize(struct canvas *can,POINT spos,POINT e |
|
ncan->xmin=ToReal(ncan->qxmin); ncan->xmax=ToReal(ncan->qxmax); |
ncan->xmin=ToReal(ncan->qxmin); ncan->xmax=ToReal(ncan->qxmax); |
ncan->ymin=ymax-YC(epos)*dy/can->height; |
ncan->ymin=ymax-YC(epos)*dy/can->height; |
ncan->ymax=ymax-YC(spos)*dy/can->height; |
ncan->ymax=ymax-YC(spos)*dy/can->height; |
|
ncan->prec = can->prec; |
create_canvas(ncan); |
create_canvas(ncan); |
|
|
switch (ncan->mode){ |
switch (ncan->mode){ |
Line 786 int ifplotOP(NODE arg,int func){ |
|
Line 795 int ifplotOP(NODE arg,int func){ |
|
for(vl0=vl;vl0;vl0=NEXT(vl0)) |
for(vl0=vl;vl0;vl0=NEXT(vl0)) |
if(vl0->v->attr==(pointer)V_IND) |
if(vl0->v->attr==(pointer)V_IND) |
if(vl->v!=can->vx && vl->v!=can->vy)return -1; |
if(vl->v!=can->vx && vl->v!=can->vy)return -1; |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
set_drawcolor(can->color); |
set_drawcolor(can->color); |
#endif |
#endif |
can->mode=func; |
can->mode=func; |
Line 795 int ifplotOP(NODE arg,int func){ |
|
Line 804 int ifplotOP(NODE arg,int func){ |
|
set_drawcolor(orgcolor); |
set_drawcolor(orgcolor); |
copy_to_canvas(can); |
copy_to_canvas(can); |
can->color=orgcolor; |
can->color=orgcolor; |
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
set_drawcolor(can->color); |
set_drawcolor(can->color); |
#endif |
#endif |
return index; |
return index; |
Line 908 void ifplotmainNG(struct canvas *can){ |
|
Line 917 void ifplotmainNG(struct canvas *can){ |
|
define_cursor(can->window,normalcur); |
define_cursor(can->window,normalcur); |
} |
} |
|
|
#if !defined(VISUAL) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
int objcp(NODE arg){ |
int objcp(NODE arg){ |
int idsrc, idtrg, op_code; |
int idsrc, idtrg, op_code; |
struct canvas *cansrc, *cantrg; |
struct canvas *cansrc, *cantrg; |