From b0a658a7b7180f5f8c6bf0a41a25ad4a22015518 Mon Sep 17 00:00:00 2001 From: spirkelmann Date: Tue, 27 Aug 2019 11:38:04 +0200 Subject: [PATCH] made script for optimal circle compuation more general by allowing also other number of circles --- prototype/cci/cci1.pdf | Bin 0 -> 3183 bytes prototype/cci/cci1.txt | 1 + prototype/cci/cci10.pdf | Bin 0 -> 4933 bytes prototype/cci/cci10.txt | 10 ++ prototype/cci/cci11.pdf | Bin 0 -> 5157 bytes prototype/cci/cci11.txt | 11 ++ prototype/cci/cci12.pdf | Bin 0 -> 5312 bytes prototype/cci/cci12.txt | 12 ++ prototype/cci/cci13.pdf | Bin 0 -> 5303 bytes prototype/cci/cci13.txt | 13 ++ prototype/cci/cci2.pdf | Bin 0 -> 3365 bytes prototype/cci/cci2.txt | 2 + prototype/cci/cci3.pdf | Bin 0 -> 3657 bytes prototype/cci/cci3.txt | 3 + prototype/cci/cci4.pdf | Bin 0 -> 3716 bytes prototype/cci/cci4.txt | 4 + prototype/cci/cci5.pdf | Bin 0 -> 4025 bytes prototype/cci/cci5.txt | 5 + prototype/cci/cci6.pdf | Bin 0 -> 4067 bytes prototype/cci/cci6.txt | 6 + prototype/cci/cci7.pdf | Bin 0 -> 4250 bytes prototype/cci/cci7.txt | 7 ++ prototype/cci/cci8.pdf | Bin 0 -> 4523 bytes prototype/cci/cci8.txt | 8 ++ prototype/cci/cci9.pdf | Bin 0 -> 4512 bytes prototype/cci/cci9.txt | 9 ++ prototype/cci/radii.txt | 15 +++ prototype/circles.py | 147 +++++++++++++---------- prototype/tmp2019_cci_08_26_11_36_00.ps | 95 --------------- prototype/tmp2019_cci_08_26_11_36_00.txt | 5 - 30 files changed, 192 insertions(+), 161 deletions(-) create mode 100644 prototype/cci/cci1.pdf create mode 100644 prototype/cci/cci1.txt create mode 100644 prototype/cci/cci10.pdf create mode 100644 prototype/cci/cci10.txt create mode 100644 prototype/cci/cci11.pdf create mode 100644 prototype/cci/cci11.txt create mode 100644 prototype/cci/cci12.pdf create mode 100644 prototype/cci/cci12.txt create mode 100644 prototype/cci/cci13.pdf create mode 100644 prototype/cci/cci13.txt create mode 100644 prototype/cci/cci2.pdf create mode 100644 prototype/cci/cci2.txt create mode 100644 prototype/cci/cci3.pdf create mode 100644 prototype/cci/cci3.txt create mode 100644 prototype/cci/cci4.pdf create mode 100644 prototype/cci/cci4.txt create mode 100644 prototype/cci/cci5.pdf create mode 100644 prototype/cci/cci5.txt create mode 100644 prototype/cci/cci6.pdf create mode 100644 prototype/cci/cci6.txt create mode 100644 prototype/cci/cci7.pdf create mode 100644 prototype/cci/cci7.txt create mode 100644 prototype/cci/cci8.pdf create mode 100644 prototype/cci/cci8.txt create mode 100644 prototype/cci/cci9.pdf create mode 100644 prototype/cci/cci9.txt create mode 100644 prototype/cci/radii.txt delete mode 100644 prototype/tmp2019_cci_08_26_11_36_00.ps delete mode 100644 prototype/tmp2019_cci_08_26_11_36_00.txt diff --git a/prototype/cci/cci1.pdf b/prototype/cci/cci1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..af05fcc61162800ef0e4022efd2469484d904280 GIT binary patch literal 3183 zcmb^zYiu0FnTJZrMj||-6cvyLLb?vk-puSh_j0$1?eirLJ}_q|u`rgh-kUwIy|;VX z-NR?A0hI)bOJf9u{)mEr5|su6`4I^TWzO0r*B$u2YQx1 zBV2y(-zLWIf9aJoS84Lt1YO>}asM{uk*mU?181+fZo7E=&_3(sb04vPZTxd~a_5{;=)yYl2`2XM>Cx&EDBlz(;pox_#iAG+z?7kk}Xes*H=!7DC5uM_7N#| z-HWMEbH}ZJyBPxHWNPK+O+Rk=#r_jdP2KbS?TV_t|GE0>N8Z@E_p3L~ zT{yq*toM_%FYM~DPHcMm^wAH-mfx7@So+`WmvJSx^nc7Q)FT5Y9!(xY{*MqM)IpJ% zKzEOn8Sd1I4Ch$E)LNV>>Lu_TRiY>nk^2OkcYFvtB7o&G+ecxZ698tOQ*m|XLAG?d zj^4%mUJUt!a5t;^K-X6FH*^K0l-5YH4vlV+} z_dARYA~##VMoeei)069HbTTT(p^WO4ky=+RYx)rLQ9mo1c3S-O;878og|xUenj^V# zD;qF3j=HRC^sa7wbVyeU;yP7Gt<#{Om{iruk`c5-4>3y1pT!Pd> z)skg<$!b~*NRn{oU@W2l#UDzGJ-JTgJB~GE`bZ8bAu7@E8f3Uyi48mM5Tc=&2rS)# zk<3F?)fmDpEe`m8If?P`@Nj529CF+uri!9qB4b&W07LRdY+tKNwzm@G1&WwG(`2?6 z3UmtTP6?Ymn1%>$2+Dvtu37d?$3|SR*6&pOv>1+(2#v+U5~Co2Ql?1+KB+$umlFvs zYRE>UA*nn|!#Seh0c3^21#n72$0$^E=BC9BogHYyfaCc!(I^p$$s(>>z6c6Iv@UKt zJk*Rwa7yN&B#e;^bh@-C6G|kKkZ7!%C`l?OBlM?4P7(q}0%|MFJ(z=+Kvh%IxQ^Qm zfmUr(XNFmn5T9W#q@jXVe!1w9LT(s1082AQdq%a*BYJYg}Um8hoR(KmgIsX^s5TYl|e znYiA4 zP@D@Ru^0^fc`#^k3t)u8Vlodel2{0fCt!BZ!&AsYxk?;%vAKAZMqv$@3nK}6A#EbM z07gl4fxT4bW4po6cQw;uE-ds2cbTIM{D)wlb6{oSy9dJUw&9@KLWbKjs5jN3#9Fc> xk|ogZBT6jX8jmTFNOM@pCbF?+C8J&%qmOT6p0Bxn5HvX+Cc>&!ZFgsdZvoRm(b)h1 literal 0 HcmV?d00001 diff --git a/prototype/cci/cci1.txt b/prototype/cci/cci1.txt new file mode 100644 index 0000000..3078550 --- /dev/null +++ b/prototype/cci/cci1.txt @@ -0,0 +1 @@ + 1 0.000000000000000000000000000000 0.000000000000000000000000000000 diff --git a/prototype/cci/cci10.pdf b/prototype/cci/cci10.pdf new file mode 100644 index 0000000000000000000000000000000000000000..93a82ab71361b4a5ab98bc920bd30832cfae69f6 GIT binary patch literal 4933 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 literal 0 HcmV?d00001 diff --git a/prototype/cci/cci11.txt b/prototype/cci/cci11.txt new file mode 100644 index 0000000..02e9308 --- /dev/null +++ b/prototype/cci/cci11.txt @@ -0,0 +1,11 @@ + 1 -0.254854701717148909608835737700 -0.700207538209709779458522719445 + 2 0.254854701717148909608835737700 -0.700207538209709779458522719445 + 3 -0.645314757823482092972348022140 -0.372572649141425545195582131150 + 4 0.645314757823482092972348022140 -0.372572649141425545195582131150 + 5 -0.254854701717148909608835737700 -0.044937760073141310932641542855 + 6 0.254854701717148909608835737700 -0.044937760073141310932641542855 + 7 -0.733824866869546118800008853460 0.129393123143898335937886211109 + 8 0.733824866869546118800008853460 0.129393123143898335937886211109 + 9 0.000000000000000000000000000000 0.396483531848771796650108754372 + 10 -0.478970165152397209191173115760 0.570814415065811443520636508336 + 11 0.478970165152397209191173115760 0.570814415065811443520636508336 diff --git a/prototype/cci/cci12.pdf b/prototype/cci/cci12.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b7af7b67727cacc07174f04876f42966928cb0f GIT binary patch literal 5312 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 literal 0 HcmV?d00001 diff --git a/prototype/cci/cci12.txt b/prototype/cci/cci12.txt new file mode 100644 index 0000000..35d5a11 --- /dev/null +++ b/prototype/cci/cci12.txt @@ -0,0 +1,12 @@ + 1 0.000000000000000000000000000000 -0.751836529428313158455945512868 + 2 -0.468509916422022800799147453449 -0.588010735613764119868275923156 + 3 0.468509916422022800799147453449 -0.588010735613764119868275923156 + 4 -0.248163470571686841544054487132 -0.143277246537595169579619996000 + 5 0.248163470571686841544054487132 -0.143277246537595169579619996000 + 6 -0.743487192950506270382840218584 -0.111736121739513839036609043190 + 7 0.743487192950506270382840218584 -0.111736121739513839036609043190 + 8 0.000000000000000000000000000000 0.286554493075190339159239992000 + 9 -0.651109533978045892394293176753 0.375918264714156579227972756434 + 10 0.651109533978045892394293176753 0.375918264714156579227972756434 + 11 -0.274977276528483469583692765135 0.699746857353277958904884966346 + 12 0.274977276528483469583692765135 0.699746857353277958904884966346 diff --git a/prototype/cci/cci13.pdf b/prototype/cci/cci13.pdf new file mode 100644 index 0000000000000000000000000000000000000000..06e1e9cf86cfd9b50d0aaf01dc6a06a4dea8286b GIT binary patch literal 5303 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∓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 literal 0 HcmV?d00001 diff --git a/prototype/cci/cci2.txt b/prototype/cci/cci2.txt new file mode 100644 index 0000000..e265ab5 --- /dev/null +++ b/prototype/cci/cci2.txt @@ -0,0 +1,2 @@ + 1 -0.500000000000000000000000000000 0.000000000000000000000000000000 + 2 0.500000000000000000000000000000 0.000000000000000000000000000000 diff --git a/prototype/cci/cci3.pdf b/prototype/cci/cci3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3443743362c299eef1ce61ad223b746ff00a4695 GIT binary patch literal 3657 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 literal 0 HcmV?d00001 diff --git a/prototype/cci/cci4.txt b/prototype/cci/cci4.txt new file mode 100644 index 0000000..2499108 --- /dev/null +++ b/prototype/cci/cci4.txt @@ -0,0 +1,4 @@ + 1 -0.414213562373095048801688724210 -0.414213562373095048801688724210 + 2 0.414213562373095048801688724210 -0.414213562373095048801688724210 + 3 -0.414213562373095048801688724210 0.414213562373095048801688724210 + 4 0.414213562373095048801688724210 0.414213562373095048801688724210 diff --git a/prototype/cci/cci5.pdf b/prototype/cci/cci5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..463506a302664104380817ac637616566a9a7dde GIT binary patch literal 4025 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 literal 0 HcmV?d00001 diff --git a/prototype/cci/cci7.txt b/prototype/cci/cci7.txt new file mode 100644 index 0000000..c17387c --- /dev/null +++ b/prototype/cci/cci7.txt @@ -0,0 +1,7 @@ + 1 -0.333333333333333333333333333333 -0.577350269189625764509148780502 + 2 0.333333333333333333333333333333 -0.577350269189625764509148780502 + 3 -0.666666666666666666666666666667 0.000000000000000000000000000000 + 4 0.000000000000000000000000000000 0.000000000000000000000000000000 + 5 0.666666666666666666666666666667 0.000000000000000000000000000000 + 6 -0.333333333333333333333333333333 0.577350269189625764509148780502 + 7 0.333333333333333333333333333333 0.577350269189625764509148780502 diff --git a/prototype/cci/cci8.pdf b/prototype/cci/cci8.pdf new file mode 100644 index 0000000000000000000000000000000000000000..24d6ba3bc8eb9a078d647cd95b0b6ebbe288bedd GIT binary patch literal 4523 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 Vaj_0J6^((g5t5tRqyQh%e*yVbbbkN< literal 0 HcmV?d00001 diff --git a/prototype/cci/cci8.txt b/prototype/cci/cci8.txt new file mode 100644 index 0000000..72d4c30 --- /dev/null +++ b/prototype/cci/cci8.txt @@ -0,0 +1,8 @@ + 1 -0.302593388348611302909204224933 -0.628341645367213738512227388956 + 2 0.302593388348611302909204224933 -0.628341645367213738512227388956 + 3 -0.679921171839088240043878874469 -0.155187570571975671990838057814 + 4 0.679921171839088240043878874469 -0.155187570571975671990838057814 + 5 0.000000000000000000000000000000 0.000000000000000000000000000000 + 6 -0.545254445070410775447749861103 0.434825910113495061957667559237 + 7 0.545254445070410775447749861103 0.434825910113495061957667559237 + 8 0.000000000000000000000000000000 0.697406611651388697090795775067 diff --git a/prototype/cci/cci9.pdf b/prototype/cci/cci9.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6e3965260cec074ae180d8f228646d6187e3e80a GIT binary patch literal 4512 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 AmjD0& literal 0 HcmV?d00001 diff --git a/prototype/cci/cci9.txt b/prototype/cci/cci9.txt new file mode 100644 index 0000000..6243058 --- /dev/null +++ b/prototype/cci/cci9.txt @@ -0,0 +1,9 @@ + 1 -0.276768653914155215717770973808 -0.668178637919298919997757686523 + 2 0.276768653914155215717770973808 -0.668178637919298919997757686523 + 3 -0.668178637919298919997757686523 -0.276768653914155215717770973808 + 4 0.668178637919298919997757686523 -0.276768653914155215717770973808 + 5 0.000000000000000000000000000000 0.000000000000000000000000000000 + 6 -0.668178637919298919997757686523 0.276768653914155215717770973808 + 7 0.668178637919298919997757686523 0.276768653914155215717770973808 + 8 -0.276768653914155215717770973808 0.668178637919298919997757686523 + 9 0.276768653914155215717770973808 0.668178637919298919997757686523 diff --git a/prototype/cci/radii.txt b/prototype/cci/radii.txt new file mode 100644 index 0000000..a829eec --- /dev/null +++ b/prototype/cci/radii.txt @@ -0,0 +1,15 @@ +# N (number of circles) | radius of enclosed circles (enclosing circle has radius of 1) +# source: http://www.packomania.com +1 1.000000000000000000000000000000 +2 0.500000000000000000000000000000 +3 0.464101615137754587054892683012 +4 0.414213562373095048801688724210 +5 0.370191908158750137702237641058 +6 0.333333333333333333333333333333 +7 0.333333333333333333333333333333 +8 0.302593388348611302909204224934 +9 0.276768653914155215717770973808 +10 0.262258924190165855095630653709 +11 0.254854701717148909608835737700 +12 0.248163470571686841544054487132 +13 0.236067977499789696409173668731 diff --git a/prototype/circles.py b/prototype/circles.py index 1e4943e..fda173e 100644 --- a/prototype/circles.py +++ b/prototype/circles.py @@ -1,90 +1,115 @@ from casadi import * import matplotlib.pyplot as plt +import math +import operator -file = open('tmp2019_cci_08_26_11_36_00.txt') +N = 7 # number of enclosed circles + +# this function reads and processes data for optimal circle packaging obtained form packomania.com +def read_circle_data(N): + coords_raw = open('cci/cci{}.txt'.format(N)) + radii_raw = open('cci/radii.txt'.format(N)) + + coords_raw = coords_raw.readlines() + coords_raw = [c.split() for c in coords_raw if c[0] != '#'] + coords = {} + for c in coords_raw: + coords[int(c[0])] = (float(c[1]), float(c[2])) + + coords = sort_ccw(coords, (0,0)) + + radii_raw = radii_raw.readlines() + radii_raw = [r.split() for r in radii_raw if r[0] != '#'] + radii = {} + for r in radii_raw: + radii[int(r[0])] = float(r[1]) + + return radii[N], coords + +# this function sorts enclosed circle coordinates counter-clockwise w.r.t. the center point +# TODO: there is a problem when circles are present that are not touching the boundary of the enclosing circle (e.g. N = 7) +def sort_ccw(coords, center): + a = {} + for c in coords: + a[c] = math.atan2(coords[c][1] - center[1], coords[c][0] - center[0]) + a_sort = sorted(a.items(), key=operator.itemgetter(1)) + + coords_sort = [] + for a in a_sort: + coords_sort.append(coords[a[0]]) + + return coords_sort + +# read radius and center coordinates for enclosed circles +rtilde, coords = read_circle_data(N) c = (0.0, 0.0) # center of big circle -R = 15.0 # radius of big circle +R = 1.0 # radius of big circle -# center for smaller circles -p1 = (-5.55287862, -7.64288174) -p2 = (5.55287862, -7.64288174) -p3 = (-8.98474635, 2.91932105) -p4 = (8.98474635, 2.91932105) -p5 = (0.00000000, 9.44712138) -rtilde = 5.5 # radius of smaller circles - -points = [p1, p2, p3, p4, p5] - -# midpoint between center of two circles -m = np.mean([p1, p2], axis=0) - -# vector in direction of midpoint -v = m - np.array(c) -v = v/np.linalg.norm(v) - -plt.xlim((-16, 16)) -plt.ylim((-16, 16)) +plt.xlim((-1, 1)) +plt.ylim((-1, 1)) plt.gca().set_aspect('equal', 'box') +plt.ion() +plt.show() -for p in points: +for p in coords: plt.plot(p[0], p[1], 'o') circle = plt.Circle(p, rtilde, fill=False) plt.gca().add_artist(circle) circle = plt.Circle(c, R, fill=False) plt.gca().add_artist(circle) -#plt.show() plt.plot(c[0], c[1], 'o') -plt.plot(m[0], m[1], 'o') -opti = casadi.Opti() +for k in range(0, N): + p1 = coords[k] + p2 = coords[(k+1) % N] -r = opti.variable(1) # radius of new circle -p = opti.variable(2) # center of new circle -#v1 = opti.variable(2) # direction vector from -#v2 = opti.variable(2) -lamb = opti.variable(1) + # midpoint between center of two circles + m = np.mean([p1, p2], axis=0) -opti.minimize(-r) -opti.subject_to(p == c + v * lamb) -opti.subject_to((p[0] - p1[0])**2 + (p[1] - p1[1])**2 >= (rtilde + r)**2) -#opti.subject_to(p == (rtilde + r) * v1 + p1) -#opti.subject_to(p == (rtilde + r) * v2 + p2) -#opti.subject_to((v1[0]**2+v1[1]**2)**0.5 == 1) -#opti.subject_to((v2[0]**2+v2[1]**2)**0.5 == 1) -opti.subject_to(R == lamb + r) -opti.subject_to(r >= 0) -opti.subject_to(r <= R) -#opti.subject_to(lamb >= 0.6 * R) + # vector in direction of midpoint + v = m - np.array(c) + v = v/np.linalg.norm(v) + plt.plot(m[0], m[1], 'o') -opti.solver('ipopt') + opti = casadi.Opti() -init_r = 0.1 -init_lamb = R - init_r -init_p = c + v * init_lamb + r = opti.variable(1) # radius of new circle + p = opti.variable(2) # center of new circle + lamb = opti.variable(1) + opti.minimize(-r) + opti.subject_to(p == c + v * lamb) + opti.subject_to((p[0] - p1[0])**2 + (p[1] - p1[1])**2 >= (rtilde + r)**2) + opti.subject_to(R == lamb + r) + opti.subject_to(r >= 0) + opti.subject_to(r <= R) -opti.set_initial(r, init_r) -opti.set_initial(p, init_p) -opti.set_initial(lamb, init_lamb) -#opti.set_initial(v1, ) + opti.solver('ipopt') -sol = opti.solve() + init_r = 0.1 + init_lamb = R - init_r + init_p = c + v * init_lamb -p = sol.value(p) -r = sol.value(r) -lamb = sol.value(lamb) + opti.set_initial(r, init_r) + opti.set_initial(p, init_p) + opti.set_initial(lamb, init_lamb) -print("p = {}".format(p)) -print("r = {}".format(r)) -print("lambda = {}".format(lamb)) -print("v = {}".format(v)) + sol = opti.solve() -plt.plot(p[0], p[1], 'o') -circle = plt.Circle(p, r, fill=False) -plt.gca().add_artist(circle) -plt.show() + p = sol.value(p) + r = sol.value(r) + lamb = sol.value(lamb) + + print("p = {}".format(p)) + print("r = {}".format(r)) + print("lambda = {}".format(lamb)) + print("v = {}".format(v)) + + plt.plot(p[0], p[1], 'o') + circle = plt.Circle(p, r, fill=False) + plt.gca().add_artist(circle) pass \ No newline at end of file diff --git a/prototype/tmp2019_cci_08_26_11_36_00.ps b/prototype/tmp2019_cci_08_26_11_36_00.ps deleted file mode 100644 index 73fc02a..0000000 --- a/prototype/tmp2019_cci_08_26_11_36_00.ps +++ /dev/null @@ -1,95 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: /srv/http/htdocs/packing/tmp/tmp2019_cci_08_26_11_36_00.ps -%%Creator: nicefig-2.0 -%%Pages: 1 -%%BoundingBox: 40 250 580 790 -%%DocumentProcessColors: Cyan Magenta Yellow Black -%%CreationDate: 26-Aug-2019 11:36:00 -%%DocumentFonts: Courier -%%+ Courier-Bold -%%+ Helvetica -%%+ Helvetica-Oblique -%%+ Symbol -%%EndComments -%%EndProlog - -20 dict begin -gsave -/g { setgray } bind def -/rgb { setrgbcolor } bind def -/np { newpath } bind def -/m { moveto } bind def -/rm { rmoveto } bind def -/l { lineto } bind def -/rl { rlineto } bind def -/c { curveto } bind def -/s { stroke } bind def -/f { closepath fill } bind def -/la { setlinejoin setlinecap 1.0417 mul setlinewidth } bind def -/lc { setlinecap } bind def -/lj { setlinejoin } bind def -/ld { setdash } bind def -/lw { setlinewidth } bind def -/font { findfont exch scalefont setfont } bind def -/rgh { dup stringwidth pop neg 0 rm } bind def -/ctr { dup stringwidth pop 2 div neg 0 rm } bind def - - 1 lj 1 lc 0.200 lw - -% - 0.400 lw -% -% box -% - 310.000 520.000 250.000 0 360 arc s -% -% circles -% - 1.000 0.843 0.000 rgb - 309.119 392.619 m 217.452 392.619 91.667 0 360 arc f - 0.000 0.000 0.000 rgb - 1.000 0.843 0.000 rgb - 494.215 392.619 m 402.548 392.619 91.667 0 360 arc f - 0.000 0.000 0.000 rgb - 1.000 0.843 0.000 rgb - 251.921 568.655 m 160.254 568.655 91.667 0 360 arc f - 0.000 0.000 0.000 rgb - 1.000 0.843 0.000 rgb - 551.412 568.655 m 459.746 568.655 91.667 0 360 arc f - 0.000 0.000 0.000 rgb - 1.000 0.843 0.000 rgb - 401.667 677.452 m 310.000 677.452 91.667 0 360 arc f - 0.000 0.000 0.000 rgb - 0.000 0.000 0.000 rgb - 217.452 392.619 91.667 0 360 arc s - 0.000 0.000 0.000 rgb - 402.548 392.619 91.667 0 360 arc s - 0.000 0.000 0.000 rgb - 160.254 568.655 91.667 0 360 arc s - 0.000 0.000 0.000 rgb - 459.746 568.655 91.667 0 360 arc s - 0.000 0.000 0.000 rgb - 310.000 677.452 91.667 0 360 arc s -% -% centers -% - 218.580 392.619 m 217.452 392.619 1.128 0 360 arc f - 403.676 392.619 m 402.548 392.619 1.128 0 360 arc f - 161.383 568.655 m 160.254 568.655 1.128 0 360 arc f - 460.874 568.655 m 459.746 568.655 1.128 0 360 arc f - 311.128 677.452 m 310.000 677.452 1.128 0 360 arc f -% - 12.00 /Courier font - 70.000 251.000 m (www.packomania.com) show - 12.00 /Symbol font - 430.000 250.000 m (Ó) show - 12.00 /Courier font - 442.000 251.000 m (E.S) show - 9.00 /Courier font - 464.000 251.000 m (PECHT) show - 500.000 251.000 m (26-AUG-2019) show - -showpage -grestore end -%%Trailer -%%EOF diff --git a/prototype/tmp2019_cci_08_26_11_36_00.txt b/prototype/tmp2019_cci_08_26_11_36_00.txt deleted file mode 100644 index 60d38c2..0000000 --- a/prototype/tmp2019_cci_08_26_11_36_00.txt +++ /dev/null @@ -1,5 +0,0 @@ - 1 -5.55287862 -7.64288174 - 2 5.55287862 -7.64288174 - 3 -8.98474635 2.91932105 - 4 8.98474635 2.91932105 - 5 0.00000000 9.44712138