Re: Line Drawing in Alpha
This code "centers" the drawing using the original coordinates in the discussion. I did not work on adjusting the north arrow rendering.
This code "centers" the drawing using the original coordinates in the discussion. I did not work on adjusting the north arrow rendering.
Code:
chld = table.current(2) 'test pass to get minimum and maximum x and y values to determine the overall dimensions needed. minx = 1 miny = 1 maxx = 1 maxy = 1 strt1x = 1 strt1y = 1 chld_rec = a5_get_records_in_query("plot_vect","lot_number = "+quote(lot_number.value)) dim test_vars as P FOR qm = 1 TO chld_rec chld.record_to_vars(test_vars) eval("l"+alltrim(str(qm))+"ns") = test_vars.dir_ns eval("l"+alltrim(str(qm))+"ew") = test_vars.dir_ew eval("l"+alltrim(str(qm))+"xmod") = if(test_vars.dir_ew = "E",1,-1) eval("l"+alltrim(str(qm))+"ymod") = if(test_vars.dir_ns = "S",1,-1) eval("l"+alltrim(str(qm))+"lnth") = test_vars.distance/100 eval("l"+alltrim(str(qm))+"decdeg") = test_vars.bear_deg+(test_vars.bear_min/60) eval("l"+alltrim(str(qm))+"adj") = cos(dtor(eval("l"+alltrim(str(qm))+"decdeg")))*eval("l"+alltrim(str(qm))+"lnth") eval("l"+alltrim(str(qm))+"opp") = sin(dtor(eval("l"+alltrim(str(qm))+"decdeg")))*eval("l"+alltrim(str(qm))+"lnth") IF qm = 1 eval("end"+alltrim(str(qm))+"x") = eval("strt"+alltrim(str(qm))+"x")+(eval("l"+alltrim(str(qm))+"xmod")*eval("l"+alltrim(str(qm))+"opp")) eval("end"+alltrim(str(qm))+"y") = eval("strt"+alltrim(str(qm))+"y")+(eval("l"+alltrim(str(qm))+"ymod")*eval("l"+alltrim(str(qm))+"adj")) ELSE eval("end"+alltrim(str(qm))+"x") = eval("end"+alltrim(str(qm-1))+"x")+(eval("l"+alltrim(str(qm))+"xmod")*eval("l"+alltrim(str(qm))+"opp")) eval("end"+alltrim(str(qm))+"y") = eval("end"+alltrim(str(qm-1))+"y")+(eval("l"+alltrim(str(qm))+"ymod")*eval("l"+alltrim(str(qm))+"adj")) END IF maxx = max(eval("end"+alltrim(str(qm))+"x"),maxx) minx = min(eval("end"+alltrim(str(qm))+"x"),minx) maxy = max(eval("end"+alltrim(str(qm))+"y"),maxy) miny = min(eval("end"+alltrim(str(qm))+"y"),miny) chld.fetch_next() NEXT qm xdim = (maxx - minx) + 2 ydim = (maxy - miny) + 2 'live pass strt1x = 1+abs(minx-1) strt1y = 1+abs(miny-1) chld_rec = a5_get_records_in_query("plot_vect","lot_number = "+quote(lot_number.value)) chld.fetch_first() dim vars as P FOR qx = 1 TO chld_rec chld.record_to_vars(vars) eval("l"+alltrim(str(qx))+"ns") = vars.dir_ns eval("l"+alltrim(str(qx))+"ew") = vars.dir_ew eval("l"+alltrim(str(qx))+"xmod") = if(vars.dir_ew = "E",1,-1) eval("l"+alltrim(str(qx))+"ymod") = if(vars.dir_ns = "S",1,-1) eval("l"+alltrim(str(qx))+"lnth") = vars.distance/100 eval("l"+alltrim(str(qx))+"decdeg") = vars.bear_deg+(vars.bear_min/60) eval("l"+alltrim(str(qx))+"adj") = cos(dtor(eval("l"+alltrim(str(qx))+"decdeg")))*eval("l"+alltrim(str(qx))+"lnth") eval("l"+alltrim(str(qx))+"opp") = sin(dtor(eval("l"+alltrim(str(qx))+"decdeg")))*eval("l"+alltrim(str(qx))+"lnth") IF qx = 1 eval("end"+alltrim(str(qx))+"x") = eval("strt"+alltrim(str(qx))+"x")+(eval("l"+alltrim(str(qx))+"xmod")*eval("l"+alltrim(str(qx))+"opp")) eval("end"+alltrim(str(qx))+"y") = eval("strt"+alltrim(str(qx))+"y")+(eval("l"+alltrim(str(qx))+"ymod")*eval("l"+alltrim(str(qx))+"adj")) ELSE eval("end"+alltrim(str(qx))+"x") = eval("end"+alltrim(str(qx-1))+"x")+(eval("l"+alltrim(str(qx))+"xmod")*eval("l"+alltrim(str(qx))+"opp")) eval("end"+alltrim(str(qx))+"y") = eval("end"+alltrim(str(qx-1))+"y")+(eval("l"+alltrim(str(qx))+"ymod")*eval("l"+alltrim(str(qx))+"adj")) END IF chld.fetch_next() NEXT qx ui_bitmap_create("test",xdim,ydim) ui_bitmap_draw("test",<<%code% inner_Rect(0,0,xdim,ydim) start_poly(strt1x,strt1y) for xq = 1 to chld_rec evaluate_template("oval(end"+alltrim(str(xq))+"x-.02,end"+alltrim(str(xq))+"y-.02,.06,.06)") evaluate_template("lineto(end"+alltrim(str(xq))+"x,end"+alltrim(str(xq))+"y)") next xq poly(strt1x,strt1y) start_poly(4,4) lineto(4,5) poly(4,5) start_poly(4,4) lineto(3.9,4.5) poly(4,4) start_poly(4,4) lineto(4.1,4.5) poly(4,4) TEXT("N",3.95,5.2) %code%) ui_dlg_box("","{image=test}")
Comment