' ****** START INCLUDE UrlKey$(key$) ****** FUNCTION UrlKey$(key$) UrlKey$ = "" keyPos% = INSTR( UCASE$(UrlQueryString$), [ UCASE$(key$) + "=" ] ) IF keyPos% THEN step1$ = RIGHT$( UrlQueryString$, [ LEN(UrlQueryString$) - keyPos% - LEN(key$) ] ) step2% = INSTR(step1$, "&") UrlKey$ = IFF( step2%, [ LEFT$(step1$, step2% - 1 ) ], step1$) END IF END FUNCTION ' ****** END INCLUDE UrlKey$(key$) ****** ' 🟡 DECLARATIONS CONST pi2# = _PI(2) , _ side_size% = 901 , _ pie_center% = (side_size% - 1) / 2 , _ pie_radius% = pie_center% - 2 , _ paint_pos_radius% = pie_radius% - 5 DIM slice_sum# , slice_pct# , color& , _ screen% , black& , white& , _ data$ , hex_prefix$ = "" DECLARE SUB SetupScreen() DECLARE SUB DoRead() DECLARE SUB DoChartPhase(phase%) ' 🟡 MAIN PROGRAM CALL SetupScreen() SCREEN _NEWIMAGE(side_size%, side_size%,screen%) : COLOR ,white& : CLS CALL DoChartPhase(1) CALL DoChartPhase(2) WHILE NOT _MOUSEBUTTON : WEND END ' 🟡 FUNCTIONS & SUBROUTINES SUB SetupScreen() LET temp% = VAL(UrlKey$("screen")) black& = 0 SELECT CASE temp% CASE 0 TO 12 screen% = 12 white& = 15 CASE 13 TO 17 screen% = 17 white& = 63 CASE ELSE screen% = 27 white& = &hFFFFFF hex_prefix$ = "0x" END SELECT END SUB SUB DoRead() LET comma_pos% = INSTR(data$, "," ) slice_pct# = VAL(LEFT$(data$, comma_pos% - 1)) data$ = RIGHT$(data$, LEN(data$) - comma_pos%) LET comma_pos% = INSTR(data$, "," ) color& = VAL( hex_prefix$ + LEFT$(data$, comma_pos% - 1) ) data$ = RIGHT$(data$, LEN(data$) - comma_pos%) END SUB SUB DoChartPhase(phase%) LET data$ = UrlKey$("data") ' RESTORE IF LEN(data$) > 1 THEN slice_sum# = 0 : CALL DoRead() WHILE slice_pct# > 0 CIRCLE (pie_center%,pie_center%), pie_radius%, CHOOSE(phase%, black&, white&) , - pi2# * slice_sum# / 100, - pi2# * (slice_pct# + slice_sum#) / 100 IF phase% = 1 THEN PSET (pie_center%,pie_center%), black& DRAW "BTA" + (INT( _R2D( ( pi2# * (slice_pct#+slice_sum#)/100 ) ) ) - 2) + " R " + STR$(paint_pos_radius%) PAINT (POINT(0),POINT(1)), color&, black& END IF slice_sum# = slice_sum# + slice_pct# CALL DoRead() WEND END IF END SUB