Rev 10 | Rev 1122 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 10 | Rev 1024 | ||
---|---|---|---|
Line 129... | Line 129... | ||
129 | /* solid line */ |
129 | /* solid line */ |
130 | void obj_line(objparm *pm) |
130 | void obj_line(objparm *pm) |
131 | { |
131 | { |
132 | scale(pm->pd,pm->p,2); |
132 | scale(pm->pd,pm->p,2); |
133 | gdImageLine(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],pm->color[0]); |
133 | gdImageLine(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],pm->color[0]); |
- | 134 | if(vimg_enable) vimg_line(scale_buf[0],scale_buf[1],scale_buf[2],scale_buf[3]); |
|
134 | } |
135 | } |
135 | 136 | ||
136 | /* Arrow */ |
- | |
137 | void |
137 | void _obj_arrow(objparm *pm, int twoside) |
138 | { |
138 | { |
139 | int l,ii[6],xx,yy; |
139 | int l,ii[6],xx,yy; |
140 | double dx,dy,length,dd[6]; |
140 | double dx,dy,length,dd[6]; |
141 | scale(pm->pd,pm->p,2); |
141 | scale(pm->pd,pm->p,2); |
142 | xx=ii[0]=pm->p[2];yy=ii[1]=pm->p[3]; |
142 | xx=ii[0]=pm->p[2];yy=ii[1]=pm->p[3]; |
Line 150... | Line 150... | ||
150 | dd[4]=dd[0]-dd[1]*fat; dd[5]=dd[1]+dd[0]*fat; |
150 | dd[4]=dd[0]-dd[1]*fat; dd[5]=dd[1]+dd[0]*fat; |
151 | ii[2]=rint(dd[2])+ii[0]; ii[3]=rint(dd[3])+ii[1]; |
151 | ii[2]=rint(dd[2])+ii[0]; ii[3]=rint(dd[3])+ii[1]; |
152 | ii[4]=rint(dd[4])+ii[0]; ii[5]=rint(dd[5])+ii[1]; |
152 | ii[4]=rint(dd[4])+ii[0]; ii[5]=rint(dd[5])+ii[1]; |
153 | gdImageFilledPolygon(image,(gdPointPtr) ii,3,pm->color[0]); |
153 | gdImageFilledPolygon(image,(gdPointPtr) ii,3,pm->color[0]); |
154 | xx=rint(dd[0])+ii[0];yy=rint(dd[1])+ii[1]; |
154 | xx=rint(dd[0])+ii[0];yy=rint(dd[1])+ii[1]; |
- | 155 | if(twoside) { |
|
- | 156 | ii[0]=pm->p[0]; ii[1]=pm->p[1]; |
|
- | 157 | ii[2]=-rint(dd[2])+ii[0]; ii[3]=-rint(dd[3])+ii[1]; |
|
- | 158 | ii[4]=-rint(dd[4])+ii[0]; ii[5]=-rint(dd[5])+ii[1]; |
|
- | 159 | gdImageFilledPolygon(image,(gdPointPtr) ii,3,pm->color[0]); |
|
- | 160 | } |
|
155 | stem: if(pm->fill) |
161 | stem: if(pm->fill) |
156 | gdImageDashedLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]); |
162 | gdImageDashedLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]); |
157 | else |
163 | else |
158 | gdImageLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]); |
164 | gdImageLine(image,pm->p[0],pm->p[1],xx,yy,pm->color[0]); |
- | 165 | if(vimg_enable) vimg_line(scale_buf[0],scale_buf[1],scale_buf[2],scale_buf[3]); |
|
- | 166 | } |
|
- | 167 | ||
- | 168 | /* Arrow */ |
|
- | 169 | void obj_arrow(objparm *pm) |
|
159 | 170 | { |
|
- | 171 | _obj_arrow(pm,0); |
|
- | 172 | } |
|
- | 173 | ||
- | 174 | /* 2-sided arrow */ |
|
- | 175 | void obj_arrow2(objparm *pm) |
|
- | 176 | { |
|
- | 177 | _obj_arrow(pm,1); |
|
160 | } |
178 | } |
161 | 179 | ||
162 | /* horizontal line */ |
180 | /* horizontal line */ |
163 | void obj_hline(objparm *pm) |
181 | void obj_hline(objparm *pm) |
164 | { |
182 | { |
165 | scale(pm->pd,pm->p,1); |
183 | scale(pm->pd,pm->p,1); |
166 | if(pm->fill) |
184 | if(pm->fill) |
167 | gdImageDashedLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]); |
185 | gdImageDashedLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]); |
168 | else |
186 | else |
169 | gdImageLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]); |
187 | gdImageLine(image,0,pm->p[1],sizex,pm->p[1],pm->color[0]); |
170 | } |
188 | } |
171 | 189 | ||
172 | /* vertical line */ |
190 | /* vertical line */ |
173 | void obj_vline(objparm *pm) |
191 | void obj_vline(objparm *pm) |
Line 198... | Line 216... | ||
198 | scale2(pm->pd[4],pm->pd[5],&xv,&yv); |
216 | scale2(pm->pd[4],pm->pd[5],&xv,&yv); |
199 | for(i=0;i<n;i++) { |
217 | for(i=0;i<n;i++) { |
200 | xi=rint(i*xv); yi=rint(i*yv); |
218 | xi=rint(i*xv); yi=rint(i*yv); |
201 | gdImageLine(image,pm->p[0]+xi,pm->p[1]+yi,pm->p[2]+xi,pm->p[3]+yi, |
219 | gdImageLine(image,pm->p[0]+xi,pm->p[1]+yi,pm->p[2]+xi,pm->p[3]+yi, |
202 | pm->color[0]); |
220 | pm->color[0]); |
- | 221 | if(vimg_enable) vimg_line(scale_buf[0]+xi,scale_buf[1]+yi, |
|
- | 222 | scale_buf[2]+xi,scale_buf[3]+yi); |
|
203 | } |
223 | } |
204 | } |
224 | } |
205 | 225 | ||
206 | /* rectangle */ |
226 | /* rectangle */ |
207 | void obj_rect(objparm *pm) |
227 | void obj_rect(objparm *pm) |
Line 212... | Line 232... | ||
212 | y1=min(pm->p[1],pm->p[3]); y2=max(pm->p[1],pm->p[3]); |
232 | y1=min(pm->p[1],pm->p[3]); y2=max(pm->p[1],pm->p[3]); |
213 | if(pm->fill) |
233 | if(pm->fill) |
214 | gdImageFilledRectangle(image,x1,y1,x2,y2,pm->color[0]); |
234 | gdImageFilledRectangle(image,x1,y1,x2,y2,pm->color[0]); |
215 | else |
235 | else |
216 | gdImageRectangle(image,x1,y1,x2,y2,pm->color[0]); |
236 | gdImageRectangle(image,x1,y1,x2,y2,pm->color[0]); |
- | 237 | if(vimg_enable) vimg_rect(scale_buf[0],scale_buf[1],scale_buf[2],scale_buf[3]); |
|
217 | } |
238 | } |
218 | 239 | ||
219 | /* square */ |
240 | /* square */ |
220 | void obj_square(objparm *pm) |
241 | void obj_square(objparm *pm) |
221 | { |
242 | { |
222 | int w,h; |
243 | int w,h; |
223 | scale(pm->pd,pm->p,1); |
244 | scale(pm->pd,pm->p,1); |
224 | w=rint(pm->pd[2]); h=rint(pm->pd[2]); |
245 | w=rint(pm->pd[2]); h=rint(pm->pd[2]); |
225 | if(pm->fill) |
246 | if(pm->fill) |
226 | gdImageFilledRectangle(image,pm->p[0],pm->p[1], |
247 | gdImageFilledRectangle(image,pm->p[0],pm->p[1], |
227 | pm->p[0]+w,pm->p[1]+h,pm->color[0]); |
248 | pm->p[0]+w,pm->p[1]+h,pm->color[0]); |
228 | else |
249 | else |
229 | gdImageRectangle(image,pm->p[0],pm->p[1], |
250 | gdImageRectangle(image,pm->p[0],pm->p[1], |
230 | pm->p[0]+w,pm->p[1]+h,pm->color[0]); |
251 | pm->p[0]+w,pm->p[1]+h,pm->color[0]); |
- | 252 | if(vimg_enable) vimg_rect(scale_buf[0],scale_buf[1], |
|
- | 253 | scale_buf[0]+pm->pd[2],scale_buf[1]+pm->pd[2]); |
|
231 | } |
254 | } |
232 | 255 | ||
233 | /* triangle */ |
256 | /* triangle */ |
234 | void obj_triangle(objparm *pm) |
257 | void obj_triangle(objparm *pm) |
235 | { |
258 | { |
236 | scale(pm->pd,pm->p,3); |
259 | scale(pm->pd,pm->p,3); |
237 | if(pm->fill) |
260 | if(pm->fill) |
238 | gdImageFilledPolygon(image,(gdPointPtr) pm->p,3,pm->color[0]); |
261 | gdImageFilledPolygon(image,(gdPointPtr) pm->p,3,pm->color[0]); |
239 | else |
262 | else |
240 | gdImagePolygon(image,(gdPointPtr) pm->p,3,pm->color[0]); |
263 | gdImagePolygon(image,(gdPointPtr) pm->p,3,pm->color[0]); |
- | 264 | if(vimg_enable) vimg_polyline(scale_buf,3,1); |
|
241 | } |
265 | } |
242 | 266 | ||
243 | /* polygon */ |
267 | /* polygon */ |
244 | void obj_poly(objparm *pm) |
268 | void obj_poly(objparm *pm) |
245 | { |
269 | { |
246 | int cnt; |
270 | int cnt; |
247 | cnt=(pm->pcnt)/2; |
271 | cnt=(pm->pcnt)/2; |
248 | scale(pm->pd,pm->p,cnt); |
272 | scale(pm->pd,pm->p,cnt); |
249 | if(pm->fill) |
273 | if(pm->fill) |
250 | gdImageFilledPolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]); |
274 | gdImageFilledPolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]); |
251 | else |
275 | else |
252 | gdImagePolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]); |
276 | gdImagePolygon(image,(gdPointPtr) pm->p,cnt,pm->color[0]); |
- | 277 | if(vimg_enable) vimg_polyline(scale_buf,cnt,1); |
|
253 | } |
278 | } |
254 | 279 | ||
255 | /* rays */ |
280 | /* rays */ |
256 | void obj_rays(objparm *pm) |
281 | void obj_rays(objparm *pm) |
257 | { |
282 | { |
258 | int i, n; |
283 | int i, n; |
259 | n=(pm->pcnt)/2; |
284 | n=(pm->pcnt)/2; |
260 | scale(pm->pd,pm->p,n); |
285 | scale(pm->pd,pm->p,n); |
261 | for(i=2;i<2*n;i+=2) |
286 | for(i=2;i<2*n;i+=2) { |
262 | gdImageLine(image,pm->p[0],pm->p[1],pm->p[i],pm->p[i+1],pm->color[0]); |
287 | gdImageLine(image,pm->p[0],pm->p[1],pm->p[i],pm->p[i+1],pm->color[0]); |
- | 288 | if(vimg_enable) vimg_line(scale_buf[0],scale_buf[1], |
|
- | 289 | scale_buf[i],scale_buf[i+1]); |
|
- | 290 | } |
|
263 | } |
291 | } |
264 | 292 | ||
265 | /* segments */ |
293 | /* segments */ |
266 | void obj_lines(objparm *pm) |
294 | void obj_lines(objparm *pm) |
267 | { |
295 | { |
268 | int i, n; |
296 | int i, n; |
269 | n=(pm->pcnt)/2; |
297 | n=(pm->pcnt)/2; |
270 | scale(pm->pd,pm->p,n); |
298 | scale(pm->pd,pm->p,n); |
271 | for(i=2;i<2*n;i+=2) |
299 | for(i=2;i<2*n;i+=2) |
272 | gdImageLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]); |
300 | gdImageLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]); |
- | 301 | if(vimg_enable) vimg_polyline(scale_buf,n,0); |
|
273 | } |
302 | } |
274 | 303 | ||
275 | /* segments */ |
304 | /* segments */ |
276 | void obj_dlines(objparm *pm) |
305 | void obj_dlines(objparm *pm) |
277 | { |
306 | { |
278 | int i, n; |
307 | int i, n; |
279 | n=(pm->pcnt)/2; |
308 | n=(pm->pcnt)/2; |
280 | scale(pm->pd,pm->p,n); |
309 | scale(pm->pd,pm->p,n); |
281 | for(i=2;i<2*n;i+=2) |
310 | for(i=2;i<2*n;i+=2) |
282 | gdImageDashedLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]); |
311 | gdImageDashedLine(image,pm->p[i-2],pm->p[i-1],pm->p[i],pm->p[i+1],pm->color[0]); |
- | 312 | if(vimg_enable) vimg_polyline(scale_buf,n,0); |
|
283 | } |
313 | } |
284 | 314 | ||
285 | /* points */ |
315 | /* points */ |
286 | void obj_points(objparm *pm) |
316 | void obj_points(objparm *pm) |
287 | { |
317 | { |
Line 306... | Line 336... | ||
306 | for(i1=0;i1<n1;i1++) { |
336 | for(i1=0;i1<n1;i1++) { |
307 | xi1=rint(i1*xv1)+pm->p[0]; yi1=rint(i1*yv1)+pm->p[1]; |
337 | xi1=rint(i1*xv1)+pm->p[0]; yi1=rint(i1*yv1)+pm->p[1]; |
308 | for(i2=0;i2<n2;i2++) { |
338 | for(i2=0;i2<n2;i2++) { |
309 | xi2=i2*xv2+xi1;yi2=i2*yv2+yi1; |
339 | xi2=i2*xv2+xi1;yi2=i2*yv2+yi1; |
310 | gdImageSetPixel(image,xi2,yi2,pm->color[0]); |
340 | gdImageSetPixel(image,xi2,yi2,pm->color[0]); |
311 | } |
341 | } |
312 | } |
342 | } |
313 | } |
343 | } |
314 | 344 | ||
315 | /* arc */ |
345 | /* arc */ |
316 | void obj_arc(objparm *pm) |
346 | void obj_arc(objparm *pm) |
317 | { |
347 | { |
318 | scale(pm->pd,pm->p,1); |
348 | scale(pm->pd,pm->p,1); |
319 | pm->p[2]=rint(pm->pd[2]*xscale); pm->p[3]=rint(pm->pd[3]*yscale); |
349 | pm->p[2]=rint(pm->pd[2]*xscale); pm->p[3]=rint(pm->pd[3]*yscale); |
320 | gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3], |
350 | gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3], |
321 | pm->pd[4],pm->pd[5],pm->color[0]); |
351 | pm->pd[4],pm->pd[5],pm->color[0]); |
- | 352 | if(vimg_enable) vimg_arc(scale_buf[0],scale_buf[1], |
|
- | 353 | 0.5*pm->pd[2],0.5*pm->pd[3],pm->pd[4],pm->pd[5]); |
|
322 | } |
354 | } |
323 | 355 | ||
324 | /* Ellipse: centre 0,1, width 2, hight 3, color 4,5,6 */ |
356 | /* Ellipse: centre 0,1, width 2, hight 3, color 4,5,6 */ |
325 | void obj_ellipse(objparm *pm) |
357 | void obj_ellipse(objparm *pm) |
326 | { |
358 | { |
Line 331... | Line 363... | ||
331 | color_bounder); |
363 | color_bounder); |
332 | gdImageFillToBorder(image,pm->p[0],pm->p[1], |
364 | gdImageFillToBorder(image,pm->p[0],pm->p[1], |
333 | color_bounder,pm->color[0]); |
365 | color_bounder,pm->color[0]); |
334 | } |
366 | } |
335 | gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],0,360,pm->color[0]); |
367 | gdImageArc(image,pm->p[0],pm->p[1],pm->p[2],pm->p[3],0,360,pm->color[0]); |
- | 368 | if(vimg_enable) vimg_ellipse(scale_buf[0],scale_buf[1],0.5*pm->pd[2],0.5*pm->pd[3]); |
|
336 | } |
369 | } |
337 | 370 | ||
338 | /* Circle */ |
371 | /* Circle */ |
339 | void obj_circle(objparm *pm) |
372 | void obj_circle(objparm *pm) |
340 | { |
373 | { |
Line 481... | Line 514... | ||
481 | {"giant", &gdFontGiant}, |
514 | {"giant", &gdFontGiant}, |
482 | {"huge", &gdFontGiant} |
515 | {"huge", &gdFontGiant} |
483 | }; |
516 | }; |
484 | 517 | ||
485 | #define fonttab_no (sizeof(fonttab)/sizeof(fonttab[0])) |
518 | #define fonttab_no (sizeof(fonttab)/sizeof(fonttab[0])) |
486 | 519 | ||
487 | /* string */ |
520 | /* string */ |
488 | void obj_string(objparm *pm) |
521 | void obj_string(objparm *pm) |
489 | { |
522 | { |
490 | char *pp, *pe, *p2; |
523 | char *pp, *pe, *p2; |
491 | int i; |
524 | int i; |
Line 519... | Line 552... | ||
519 | gdImageSetPixel(image,pm->p[0],pm->p[1],pm->color[0]); |
552 | gdImageSetPixel(image,pm->p[0],pm->p[1],pm->color[0]); |
520 | } |
553 | } |
521 | 554 | ||
522 | /* copy an image file */ |
555 | /* copy an image file */ |
523 | void obj_copy(objparm *pm) |
556 | void obj_copy(objparm *pm) |
524 | { |
557 | { |
525 | char *pp; |
558 | char *pp; |
526 | FILE *inf; |
559 | FILE *inf; |
527 | gdImagePtr insimg; |
560 | gdImagePtr insimg; |
528 | 561 | ||
529 | pp=find_word_start(pm->str);*find_word_end(pp)=0; |
562 | pp=find_word_start(pm->str);*find_word_end(pp)=0; |
530 | inf=open4read(pp); |
563 | inf=open4read(pp); |
531 | if(inf==NULL) { |
564 | if(inf==NULL) { |
532 | error("file_not_exist"); return; |
565 | error("file_not_exist"); return; |
533 | } |
566 | } |
534 | insimg=gdImageCreateFromGif(inf); fclose(inf); |
567 | insimg=gdImageCreateFromGif(inf); fclose(inf); |
535 | if(insimg==NULL) { |
568 | if(insimg==NULL) { |
Line 569... | Line 602... | ||
569 | else |
602 | else |
570 | gdImageCopyResized(image,insimg,pm->p[4],pm->p[5],pm->pd[0],pm->pd[1], |
603 | gdImageCopyResized(image,insimg,pm->p[4],pm->p[5],pm->pd[0],pm->pd[1], |
571 | pm->p[6]-pm->p[4]+1,pm->p[7]-pm->p[5]+1, |
604 | pm->p[6]-pm->p[4]+1,pm->p[7]-pm->p[5]+1, |
572 | pm->pd[2]-pm->pd[0]+1,pm->pd[3]-pm->pd[1]+1); |
605 | pm->pd[2]-pm->pd[0]+1,pm->pd[3]-pm->pd[1]+1); |
573 | gdImageDestroy(insimg); |
606 | gdImageDestroy(insimg); |
574 | } |
607 | } |
575 | 608 | ||
576 | /* set brush or tile */ |
609 | /* set brush or tile */ |
577 | void obj_setbrush(objparm *pm) |
610 | void obj_setbrush(objparm *pm) |
578 | { |
611 | { |
579 | char *pp; |
612 | char *pp; |
Line 621... | Line 654... | ||
621 | if(pm->pd[3*i]<0 || pm->pd[3*i+1]<0 || pm->pd[3*i+2]<0) |
654 | if(pm->pd[3*i]<0 || pm->pd[3*i+1]<0 || pm->pd[3*i+2]<0) |
622 | pm->p[i]=gdTransparent; |
655 | pm->p[i]=gdTransparent; |
623 | else |
656 | else |
624 | pm->p[i]=getcolor(pm->pd[3*i],pm->pd[3*i+1],pm->pd[3*i+2]); |
657 | pm->p[i]=getcolor(pm->pd[3*i],pm->pd[3*i+1],pm->pd[3*i+2]); |
625 | } |
658 | } |
626 | - | ||
627 | gdImageSetStyle(image,pm->p,t); styled=1; |
659 | gdImageSetStyle(image,pm->p,t); styled=1; |
628 | } |
660 | } |
629 | 661 | ||
630 | /* kill style */ |
662 | /* kill style */ |
631 | void obj_killstyle(objparm *pm) |
663 | void obj_killstyle(objparm *pm) |
632 | { |
664 | { |
633 | styled=0; |
665 | styled=0; |
Line 645... | Line 677... | ||
645 | gdImageInterlace(image,1); |
677 | gdImageInterlace(image,1); |
646 | } |
678 | } |
647 | 679 | ||
648 | /* set linewidth */ |
680 | /* set linewidth */ |
649 | void obj_linewidth(objparm *pm) |
681 | void obj_linewidth(objparm *pm) |
650 | { |
682 | { |
651 | if(pm->pd[0]<1 || pm->pd[0]>255) error("bad_parms"); |
683 | if(pm->pd[0]<1 || pm->pd[0]>255) error("bad_parms"); |
652 | else width=pm->pd[0]; |
684 | else width=pm->pd[0]; |
653 | } |
685 | } |
654 | 686 | ||
655 | /* set x range */ |
687 | /* set x range */ |
656 | void obj_xrange(objparm *pm) |
688 | void obj_xrange(objparm *pm) |
657 | { |
689 | { |
658 | double dd; |
690 | double dd; |
659 | dd=pm->pd[1]-pm->pd[0]; |
691 | dd=pm->pd[1]-pm->pd[0]; |
660 | xstart=pm->pd[0]; xscale=sizex/dd; |
692 | xstart=pm->pd[0]; xscale=sizex/dd; |
661 | } |
693 | } |
662 | 694 | ||
663 | /* set y range */ |
695 | /* set y range */ |
664 | void obj_yrange(objparm *pm) |
696 | void obj_yrange(objparm *pm) |
665 | { |
697 | { |
666 | double dd; |
698 | double dd; |
Line 733... | Line 765... | ||
733 | pp+=strlen(EV_T); |
765 | pp+=strlen(EV_T); |
734 | } |
766 | } |
735 | varpos=eval_getpos(EV_T); |
767 | varpos=eval_getpos(EV_T); |
736 | if(varpos<0) return; /* unknown error */ |
768 | if(varpos<0) return; /* unknown error */ |
737 | evalue_compile(p1); evalue_compile(p2); |
769 | evalue_compile(p1); evalue_compile(p2); |
- | 770 | if(vimg_enable) vimg_plotstart(); |
|
738 | for(i=j=0;i<=tstep;i++) { |
771 | for(i=j=0;i<=tstep;i++) { |
739 | if(n==1) { |
772 | if(n==1) { |
740 | if(tranged) t=tstart+i*v; else t=xstart+i*v; |
773 | if(tranged) t=tstart+i*v; else t=xstart+i*v; |
741 | eval_setval(varpos,t); dc[0]=t; dc[1]=evalue(p1); |
774 | eval_setval(varpos,t); dc[0]=t; dc[1]=evalue(p1); |
742 | } |
775 | } |
Line 744... | Line 777... | ||
744 | t=tstart+i*v; eval_setval(varpos,t); |
777 | t=tstart+i*v; eval_setval(varpos,t); |
745 | dc[0]=evalue(p1); dc[1]=evalue(p2); |
778 | dc[0]=evalue(p1); dc[1]=evalue(p2); |
746 | } |
779 | } |
747 | if(!finite(dc[0]) || !finite(dc[1])) ic[0]=ic[1]=-BOUND; |
780 | if(!finite(dc[0]) || !finite(dc[1])) ic[0]=ic[1]=-BOUND; |
748 | else scale(dc,ic,1); |
781 | else scale(dc,ic,1); |
- | 782 | if(vimg_enable) vimg_plot1 (scale_buf[0],scale_buf[1]); |
|
749 | if(j==0) { |
783 | if(j==0) { |
750 | gdImageSetPixel(image,ic[0],ic[1],pm->color[0]); j++; |
784 | gdImageSetPixel(image,ic[0],ic[1],pm->color[0]); j++; |
751 | } |
785 | } |
752 | else { |
786 | else { |
753 | xx=ic[0]-oc[0]; yy=ic[1]-oc[1]; |
787 | xx=ic[0]-oc[0]; yy=ic[1]-oc[1]; |
Line 760... | Line 794... | ||
760 | 794 | ||
761 | } |
795 | } |
762 | } |
796 | } |
763 | memmove(oc,ic,sizeof(oc)); |
797 | memmove(oc,ic,sizeof(oc)); |
764 | } |
798 | } |
- | 799 | if(vimg_enable) vimg_plotend(); |
|
765 | } |
800 | } |
766 | 801 | ||
767 | /* set levelcurve granularity */ |
802 | /* set levelcurve granularity */ |
768 | void obj_levelstep(objparm *pm) |
803 | void obj_levelstep(objparm *pm) |
769 | { |
804 | { |
Line 832... | Line 867... | ||
832 | p=find_word_start(pm->str); *find_word_end(p)=0; |
867 | p=find_word_start(pm->str); *find_word_end(p)=0; |
833 | snprintf(namebuf,sizeof(namebuf),"%s",imagefilename); |
868 | snprintf(namebuf,sizeof(namebuf),"%s",imagefilename); |
834 | snprintf(imagefilename,sizeof(imagefilename),"%s",p); |
869 | snprintf(imagefilename,sizeof(imagefilename),"%s",p); |
835 | output(); |
870 | output(); |
836 | snprintf(imagefilename,sizeof(imagefilename),"%s",namebuf); |
871 | snprintf(imagefilename,sizeof(imagefilename),"%s",namebuf); |
- | 872 | } |
|
- | 873 | ||
- | 874 | /* vimgfile */ |
|
- | 875 | void obj_vimgfile(objparm *pm) |
|
- | 876 | { |
|
- | 877 | char *p; |
|
- | 878 | p=find_word_start(pm->str); *find_word_end(p)=0; |
|
- | 879 | snprintf(vimgfilename,sizeof(vimgfilename),"%s",p); |
|
- | 880 | if(vimg_ready) vimg_close(); |
|
- | 881 | } |
|
- | 882 | ||
- | 883 | /* vimg enable/disable */ |
|
- | 884 | void obj_vimg(objparm *pm) |
|
- | 885 | { |
|
- | 886 | vimg_enable=pm->pd[0]; |
|
- | 887 | if(vimg_enable>0 && vimg_ready==0) { |
|
- | 888 | vimg_init(); |
|
- | 889 | } |
|
837 | } |
890 | } |
838 | 891 | ||
839 | /* Set affine transformation */ |
892 | /* Set affine transformation */ |
840 | void obj_affine(objparm *pm) |
893 | void obj_affine(objparm *pm) |
841 | { |
894 | { |