mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2024-12-29 16:29:40 +00:00
44 lines
21 KiB
OpenSCAD
44 lines
21 KiB
OpenSCAD
|
include <BOSL2/std.scad>
|
||
|
include <BOSL2/hull.scad>
|
||
|
|
||
|
|
||
|
module test_prismoid() {
|
||
|
$fn=24;
|
||
|
assert_approx(prismoid([100,80],[50,40],h=50), [[[25,20,50],[25,-20,50],[-25,-20,50],[-25,20,50],[50,40,0],[50,-40,0],[-50,-40,0],[-50,40,0]],[[0,1,2],[0,2,3],[0,4,5],[0,5,1],[1,5,6],[1,6,2],[2,6,7],[2,7,3],[3,7,4],[3,4,0],[4,7,6],[4,6,5]]]);
|
||
|
assert_approx(prismoid([100,80],[50,40],h=50,anchor=BOT), [[[25,20,50],[25,-20,50],[-25,-20,50],[-25,20,50],[50,40,0],[50,-40,0],[-50,-40,0],[-50,40,0]],[[0,1,2],[0,2,3],[0,4,5],[0,5,1],[1,5,6],[1,6,2],[2,6,7],[2,7,3],[3,7,4],[3,4,0],[4,7,6],[4,6,5]]]);
|
||
|
assert_approx(prismoid([100,80],[0,0],h=50,anchor=BOT), [[[0.000030517578125,0.000030517578125,50],[0.000030517578125,-0.000030517578125,50],[-0.000030517578125,-0.000030517578125,50],[-0.000030517578125,0.000030517578125,50],[50,40,0],[50,-40,0],[-50,-40,0],[-50,40,0]],[[0,1,2],[0,2,3],[0,4,5],[0,5,1],[1,5,6],[1,6,2],[2,6,7],[2,7,3],[3,7,4],[3,4,0],[4,7,6],[4,6,5]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,anchor=BOT), [[[20,25,50],[20,-25,50],[-20,-25,50],[-20,25,50],[50,40,0],[50,-40,0],[-50,-40,0],[-50,40,0]],[[0,1,2],[0,2,3],[0,4,5],[0,5,1],[1,5,6],[1,6,2],[2,6,7],[2,7,3],[3,7,4],[3,4,0],[4,7,6],[4,6,5]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,anchor=TOP+RIGHT), [[[0,25,0],[0,-25,0],[-40,-25,0],[-40,25,0],[30,40,-50],[30,-40,-50],[-70,-40,-50],[-70,40,-50]],[[0,1,2],[0,2,3],[0,4,5],[0,5,1],[1,5,6],[1,6,2],[2,6,7],[2,7,3],[3,7,4],[3,4,0],[4,7,6],[4,6,5]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5]), [[[30,30,50],[30,-20,50],[-10,-20,50],[-10,30,50],[50,40,0],[50,-40,0],[-50,-40,0],[-50,40,0]],[[0,1,2],[0,2,3],[0,4,5],[0,5,1],[1,5,6],[1,6,2],[2,6,7],[2,7,3],[3,7,4],[3,4,0],[4,7,6],[4,6,5]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],chamfer=5), [[[50,-35,0],[45,-40,0],[-45,-40,0],[-50,-35,0],[-50,35,0],[-45,40,0],[45,40,0],[50,35,0],[30,-15,50],[25,-20,50],[-5,-20,50],[-10,-15,50],[-10,25,50],[-5,30,50],[25,30,50],[30,25,50]],[[0,2,1],[1,8,0],[2,0,3],[3,0,4],[4,0,5],[5,0,6],[0,8,7],[6,0,7],[8,1,9],[1,2,9],[2,3,10],[9,2,10],[8,9,10],[8,10,11],[3,4,11],[10,3,11],[4,5,12],[11,4,12],[8,11,12],[5,6,13],[12,5,13],[8,12,13],[6,7,14],[13,6,14],[8,13,14],[7,8,15],[8,14,15],[14,7,15]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],chamfer1=5), [[[50,-35,0],[45,-40,0],[-45,-40,0],[-50,-35,0],[-50,35,0],[-45,40,0],[45,40,0],[50,35,0],[30,-20,50],[-10,-20,50],[-10,30,50],[30,30,50]],[[0,2,1],[1,8,0],[2,8,1],[2,0,3],[3,0,4],[4,0,5],[5,0,6],[0,8,7],[6,0,7],[8,2,9],[2,3,9],[3,4,9],[5,6,10],[4,5,10],[9,4,10],[8,9,10],[6,7,11],[10,6,11],[7,8,11],[8,10,11]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],chamfer2=5), [[[50,-40,0],[-50,-40,0],[-50,40,0],[50,40,0],[30,-15,50],[25,-20,50],[-5,-20,50],[-10,-15,50],[-10,25,50],[-5,30,50],[25,30,50],[30,25,50]],[[0,2,1],[2,0,3],[0,4,3],[4,0,5],[0,1,5],[4,5,6],[5,1,6],[4,6,7],[1,2,7],[6,1,7],[4,7,8],[7,2,8],[2,3,9],[8,2,9],[4,8,9],[4,9,10],[9,3,10],[3,4,11],[4,10,11],[10,3,11]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],chamfer1=5,chamfer2=10), [[[50,-35,0],[45,-40,0],[-45,-40,0],[-50,-35,0],[-50,35,0],[-45,40,0],[45,40,0],[50,35,0],[30,-10,50],[20,-20,50],[0,-20,50],[-10,-10,50],[-10,20,50],[0,30,50],[20,30,50],[30,20,50]],[[0,2,1],[1,8,0],[2,0,3],[3,0,4],[4,0,5],[5,0,6],[0,8,7],[6,0,7],[8,1,9],[1,2,9],[2,3,10],[9,2,10],[8,9,10],[8,10,11],[3,4,11],[10,3,11],[4,5,12],[11,4,12],[8,11,12],[5,6,13],[12,5,13],[8,12,13],[6,7,14],[13,6,14],[8,13,14],[7,8,15],[8,14,15],[14,7,15]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],rounding=5), [[[50,-35,0],[49.8296291314,-36.2940952255,0],[49.3301270189,-37.5,0],[48.5355339059,-38.5355339059,0],[47.5,-39.3301270189,0],[46.2940952255,-39.8296291314,0],[45,-40,0],[-45,-40,0],[-46.2940952255,-39.8296291314,0],[-47.5,-39.3301270189,0],[-48.5355339059,-38.5355339059,0],[-49.3301270189,-37.5,0],[-49.8296291314,-36.2940952255,0],[-50,-35,0],[-50,35,0],[-49.8296291314,36.2940952255,0],[-49.3301270189,37.5,0],[-48.5355339059,38.5355339059,0],[-47.5,39.3301270189,0],[-46.2940952255,39.8296291314,0],[-45,40,0],[45,40,0],[46.2940952255,39.8296291314,0],[47.5,39.3301270189,0],[48.5355339059,38.5355339059,0],[49.3301270189,37.5,0],[49.8296291314,36.2940952255,0],[50,35,0],[30,-15,50],[29.8296291314,-16.2940952255,50],[29.3301270189,-17.5,50],[28.5355339059,-18.5355339059,50],[27.5,-19.3301270189,50],[26.2940952255,-19.8296291314,50],[25,-20,50],[-5,-20,50],[-6.29409522551,-19.8296291314,50],[-7.5,-19.3301270189,50],[-8.53553390593,-18.5355339059,50],[-9.33012701892,-17.5,50],[-9.82962913145,-16.2940952255,50],[-10,-15,50],[-10,25,50],[-9.82962913145,26.2940952255,50],[-9.33012701892,27.5,50],[-8.53553390593,28.5355339059,50],[-7.5,29.3301270189,50],[-6.29409522551,29.8296291314,50],[-5,30,50],[25,30,50],[26.2940952255,29.8296291314,50],[27.5,29.3301270189,50],[28.5355339059,28.5355339059,50],[29.3301270189,27.5,50],[29.8296291314,26.2940952255,50],[30,25,50]],[[0,2,1],[1,28,0],[2,0,3],[3,0,4],[4,0,5],[5,0,6],[6,0,7],[7,0,8],[8,0,9],[9,0,10],[10,0,11],[11,0,12],[12,0,13],[13,0,14],[14,0,15],[15,0,16],[16,0,17],[17,0,18],[18,0,19],[19,0,20],[20,0,21],[21,0,22],[22,0,23],[23,0,24],[24,0,25],[25,0,26],[0,28,27],[26,0,27],[28,1,29],[1,2,29],[2,3,30],[29,2,30],[28,29,30],[28,30,31],[3,4,31],[30,3,31],[28,31,32],[4,5,32],[31,4,32],[28,32,33],[5,6,33],[32,5,33],[28,33,34],[6,7,34],[33,6,34],[28,34,35],[7,8,35],[34,7,35],[28,35,36],[8,9,36],[35,8,36],[28,36,37],[9,10,37],[36,9,37],[28,37,38],[10,11,38],[37,10,38],[28,38,39],[11,12,39],[38,11,39],[28,39,40],[12,13,40],[39,12,40],[28,40,41],[13,14,41],[40,13,41],[28,41,42],[14,15,42],[41,14,42],[28,42,43],[15,16,43],[42,15,43],[28,43,44],[16,17,44],[43,16,44],[28,44,45],[17,18,45],[44,17,45],[28,45,46],[18,19,46],[45,18,46],[28,46,47],[19,20,47],[46,19,47],[20,21,48],[47,20,48],[28,47,48],[21,22,49],[48,21,49],[28,48,49],[28,49,50],[22,23,50],[49,22,50],[28,50,51],[23,24,51],[50,23,51],[24,25,52],[51,24,52],[28,51,52],[25,26,53],[52,25,53],[28,52,53],[26,27,54],[53,26,54],[28,53,54],[27,28,55],[28,54,55],[54,27,55]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],rounding1=5), [[[50,-35,0],[49.8296291314,-36.2940952255,0],[49.3301270189,-37.5,0],[48.5355339059,-38.5355339059,0],[47.5,-39.3301270189,0],[46.2940952255,-39.8296291314,0],[45,-40,0],[-45,-40,0],[-46.2940952255,-39.8296291314,0],[-47.5,-39.3301270189,0],[-48.5355339059,-38.5355339059,0],[-49.3301270189,-37.5,0],[-49.8296291314,-36.2940952255,0],[-50,-35,0],[-50,35,0],[-49.8296291314,36.2940952255,0],[-49.3301270189,37.5,0],[-48.5355339059,38.5355339059,0],[-47.5,39.3301270189,0],[-46.2940952255,39.8296291314,0],[-45,40,0],[45,40,0],[46.2940952255,39.8296291314,0],[47.5,39.3301270189,0],[48.5355339059,38.5355339059,0],[49.3301270189,37.5,0],[49.8296291314,36.2940952255,0],[50,35,0],[30,-20,50],[-10,-20,50],[-10,30,50],[30,30,50]],[[0,2,1],[1,28,0],[2,28,1],[28,2,3],[2,0,3],[28,3,4],[3,0,4],[28,4,5],[4,0,5],[28,5,6],[5,0,6],[28,6,7],[6,0,7],[7,0,8],[8,0,9],[9,0,10],[10,0,11],[11,0,12],[12,0,13],[13,0,14],[14,0,15],[15,0,16],[16,0,17],[17,0,18],[18,0,19],[19,0,20],[20,0,21],[21,0,22],[22,0,23],[23,0,24],[24,0,25],[25,0,26],[0,28,27],[26,0,27],[28,7,29],[7,8,29],[8,9,29],[9,10,29],[10,11,29],[11,12,29],[12,13,29],[13,14,29],[20,21,30],[14,15,30],[29,14,30],[15,16,30],[16,17,30],[17,18,30],[18,19,30],[19,20,30],[28,29,30],[24,25,31],[25,26,31],[26,27,31],[27,28,31],[21,22,31],[30,21,31],[22,23,31],[23,24,31],[28,30,31]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],rounding2=5), [[[50,-40,0],[-50,-40,0],[-50,40,0],[50,40,0],[30,-15,50],[29.8296291314,-16.2940952255,50],[29.3301270189,-17.5,50],[28.5355339059,-18.5355339059,50],[27.5,-19.3301270189,50],[26.2940952255,-19.8296291314,50],[25,-20,50],[-5,-20,50],[-6.29409522551,-19.8296291314,50],[-7.5,-19.3301270189,50],[-8.53553390593,-18.5355339059,50],[-9.33012701892,-17.5,50],[-9.82962913145,-16.2940952255,50],[-10,-15,50],[-10,25,50],[-9.82962913145,26.2940952255,50],[-9.33012701892,27.5,50],[-8.53553390593,28.5355339059,50],[-7.5,29.3301270189,50],[-6.29409522551,29.8296291314,50],[-5,30,50],[25,30,50],[26.2940952255,29.8296291314,50],[27.5,29.3301270189,50],[28.5355339059,28.5355339059,50],[29.3301270189,27.5,50],[29.8296291314,26.2940952255,50],[30,25,50]],[[0,2,1],[2,0,3],[0,4,3],[4,0,5],[5,0,6],[4,5,6],[6,0,7],[4,6,7],[7,0,8],[4,7,8],[8,0,9],[4,8,9],[0,1,10],[9,0,10],[4,9,10],[4,10,11],[10,1,11],[4,11,12],[11,1,12],[4,12,13],[12,1,13],[4,13,14],[13,1,14],[4,14,15],[14,1,15],[4,15,16],[15,1,16],[4,16,17],[1,2,17],[16,1,17],[4,17,18],[17,2,18],[18,2,19],[4,18,19],[19,2,20],[4,19,20],[20,2,21],[4,20,21],[21,2,22],[4,21,22],[22,2,23],[4,22,23],[2,3,24],[23,2,24],[4,23,24],[4,24,25],[24,3,25],[4,25,26],[25,3,26],[4,26,27],[26,3,27],[4,27,28],[27,3,28],[4,28,29],[28,3,29],[4,29,30],[29,3,30],[3,4,31],[4,30,31],[30,3,31]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],rounding1=5,rounding2=10), [[[50,-35,0],[49.8296291314,-36.2940952255,0],[49.3301270189,-37.5,0],[48.5355339059,-38.5355339059,0],[47.5,-39.3301270189,0],[46.2940952255,-39.8296291314,0],[45,-40,0],[-45,-40,0],[-46.2940952255,-39.8296291314,0],[-47.5,-39.3301270189,0],[-48.5355339059,-38.5355339059,0],[-49.3301270189,-37.5,0],[-49.8296291314,-36.2940952255,0],[-50,-35,0],[-50,35,0],[-49.8296291314,36.2940952255,0],[-49.3301270189,37.5,0],[-48.5355339059,38.5355339059,0],[-47.5,39.3301270189,0],[-46.2940952255,39.8296291314,0],[-45,40,0],[45,40,0],[46.2940952255,39.8296291314,0],[47.5,39.3301270189,0],[48.5355339059,38.5355339059,0],[49.3301270189,37.5,0],[49.8296291314,36.2940952255,0],[50,35,0],[30,-10,50],[29.6592582629,-12.588190451,50],[28.6602540378,-15,50],[27.0710678119,-17.0710678119,50],[25,-18.6602540378,50],[22.588190451,-19.6592582629,50],[20,-20,50],[0,-20,50],[-2.58819045103,-19.6592582629,50],[-5,-18.6602540378,50],[-7.07106781187,-17.0710678119,50],[-8.66025403784,-15,50],[-9.65925826289,-12.588190451,50],[-10,-10,50],[-10,20,50],[-9.65925826289,22.588190451,50],[-8.66025403784,25,50],[-7.07106781187,27.0710678119,50],[-5,28.6602540378,50],[-2.58819045103,29.6592582629,50],[0,30,50],[20,30,50],[22.588190451,29.6592582629,50],[25,28.6602540378,50],[27.0710678119,27.0710678119,50],[28.6602540378,25,50],[29.6592582629,22.588190451,50],[30,20,50]],[[0,2,1],[1,28,0],[2,0,3],[3,0,4],[4,0,5],[5,0,6],[6,0,7],[7,0,8],[8,0,9],[9,0,10],[10,0,11],[11,0,12],[12,0,13],[13,0,14],[14,0,15],[15,0,16],[16,0,17],[17,0,18],[18,0,19],[19,0,20],[20,0,21],[21,0,22],[22,0,23],[23,0,24],[24,0,25],[25,0,26],[0,28,27],[26,0,27],[28,1,29],[1,2,29],[2,3,30],[29,2,30],[28,29,30],[28,30,31],[3,4,31],[30,3,31],[28,31,32],[4,5,32],[31,4,32],[28,32,33],[5,6,33],[32,5,33],[28,33,34],[6,7,34],[33,6,34],[28,34,35],[7,8,35],[34,7,35],[28,35,36],[8,9,36],[35,8,36],[28,36,37],[9,10,37],[36,9,37],[28,37,38],[10,11,38],[37,10,38],[28,38,39],[11,12,39],[38,11,39],[28,39,40],[12,13,40],[39,12,40],[28,40,41],[13,14,41],[40,13,41],[28,41,42],[14,15,42],[41,14,42],[28,42,43],[15,16,43],[42,15,43],[28,43,44],[16,17,44],[43,16,44],[28,44,45],[17,18,45],[44,17,45],[28,45,46],[18,19,46],[45,18,46],[28,46,47],[19,20,47],[46,19,47],[28,47,48],[20,21,48],[47,20,48],[28,48,49],[21,22,49],[48,21,49],[28,49,50],[22,23,50],[49,22,50],[28,50,51],[23,24,51],[50,23,51],[28,51,52],[24,25,52],[51,24,52],[28,52,53],[25,26,53],[52,25,53],[26,27,54],[53,26,54],[28,53,54],[27,28,55],[28,54,55],[54,27,55]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],rounding1=5,chamfer2=10), [[[50,-35,0],[49.8296291314,-36.2940952255,0],[49.3301270189,-37.5,0],[48.5355339059,-38.5355339059,0],[47.5,-39.3301270189,0],[46.2940952255,-39.8296291314,0],[45,-40,0],[-45,-40,0],[-46.2940952255,-39.8296291314,0],[-47.5,-39.3301270189,0],[-48.5355339059,-38.5355339059,0],[-49.3301270189,-37.5,0],[-49.8296291314,-36.2940952255,0],[-50,-35,0],[-50,35,0],[-49.8296291314,36.2940952255,0],[-49.3301270189,37.5,0],[-48.5355339059,38.5355339059,0],[-47.5,39.3301270189,0],[-46.2940952255,39.8296291314,0],[-45,40,0],[45,40,0],[46.2940952255,39.8296291314,0],[47.5,39.3301270189,0],[48.5355339059,38.5355339059,0],[49.3301270189,37.5,0],[49.8296291314,36.2940952255,0],[50,35,0],[30,-10,50],[20,-20,50],[0,-20,50],[-10,-10,50],[-10,20,50],[0,30,50],[20,30,50],[30,20,50]],[[0,2,1],[1,28,0],[2,28,1],[28,2,3],[2,0,3],[3,0,4],[4,0,5],[5,0,6],[6,0,7],[7,0,8],[8,0,9],[9,0,10],[10,0,11],[11,0,12],[12,0,13],[13,0,14],[14,0,15],[15,0,16],[16,0,17],[17,0,18],[18,0,19],[19,0,20],[20,0,21],[21,0,22],[22,0,23],[23,0,24],[24,0,25],[25,0,26],[0,28,27],[26,0,27],[28,3,29],[3,4,29],[4,5,29],[5,6,29],[6,7,29],[7,8,30],[29,7,30],[8,9,30],[9,10,30],[28,29,30],[28,30,31],[10,11,31],[30,10,31],[11,12,31],[12,13,31],[13,14,31],[28,31,32],[14,15,32],[31,14,32],[15,16,32],[16,17,32],[20,21,33],[28,32,33],[19,20,33],[17,18,33],[32,17,33],[18,19,33],[23,24,34],[28,33,34],[21,22,34],[33,21,34],[22,23,34],[26,27,35],[27,28,35],[25,26,35],[28,34,35],[24,25,35],[34,24,35]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],chamfer=[0,5,10,15]), [[[50,-25,0],[35,-40,0],[-40,-40,0],[-50,-30,0],[-50,35,0],[-45,40,0],[50,40,0],[30,-5,50],[15,-20,50],[0,-20,50],[-10,-10,50],[-10,25,50],[-5,30,50],[30,30,50]],[[0,2,1],[1,7,0],[2,0,3],[3,0,4],[4,0,5],[0,7,6],[5,0,6],[7,1,8],[1,2,8],[2,3,9],[8,2,9],[7,8,9],[7,9,10],[3,4,10],[9,3,10],[4,5,11],[10,4,11],[7,10,11],[5,6,12],[11,5,12],[7,11,12],[6,7,13],[7,12,13],[12,6,13]]]);
|
||
|
assert_approx(prismoid([100,80],[40,50],h=50,shift=[10,5],chamfer1=[15,10,5,0], rounding2=[0,5,10,15]), [[[50,-40,0],[-45,-40,0],[-50,-35,0],[-50,30,0],[-40,40,0],[35,40,0],[50,25,0],[30,-5,50],[29.4888873943,-8.88228567654,50],[27.9903810568,-12.5,50],[25.6066017178,-15.6066017178,50],[22.5,-17.9903810568,50],[18.8822856765,-19.4888873943,50],[15,-20,50],[0,-20,50],[-2.58819045103,-19.6592582629,50],[-5,-18.6602540378,50],[-7.07106781187,-17.0710678119,50],[-8.66025403784,-15,50],[-9.65925826289,-12.588190451,50],[-10,-10,50],[-10,25,50],[-9.82962913145,26.2940952255,50],[-9.33012701892,27.5,50],[-8.53553390593,28.5355339059,50],[-7.5,29.3301270189,50],[-6.29409522551,29.8296291314,50],[-5,30,50],[30,30,50]],[[0,2,1],[2,0,3],[3,0,4],[4,0,5],[0,7,6],[5,0,6],[7,0,8],[8,0,9],[7,8,9],[9,0,10],[7,9,10],[10,0,11],[7,10,11],[11,0,12],[7,11,12],[0,1,13],[12,0,13],[7,12,13],[13,1,14],[7,13,14],[7,14,15],[14,1,15],[7,15,16],[15,1,16],[7,16,17],[1,2,17],[16,1,17],[7,17,18],[17,2,18],[7,18,19],[18,2,19],[7,19,20],[2,3,20],[19,2,20],[20,3,21],[7,20,21],[7,21,22],[21,3,22],[7,22,23],[22,3,23],[7,23,24],[3,4,24],[23,3,24],[24,4,25],[7,24,25],[25,4,26],[7,25,26],[4,5,27],[26,4,27],[7,26,27],[5,6,28],[6,7,28],[7,27,28],[27,5,28]]]);
|
||
|
}
|
||
|
test_prismoid();
|
||
|
|
||
|
|
||
|
module test_spheroid() {
|
||
|
$fn=6;
|
||
|
assert_approx(spheroid(r=50),[[[0,0,50],[43.3012701892,0,25],[21.6506350946,37.5,25],[-21.6506350946,37.5,25],[-43.3012701892,0,25],[-21.6506350946,-37.5,25],[21.6506350946,-37.5,25],[43.3012701892,0,-25],[21.6506350946,37.5,-25],[-21.6506350946,37.5,-25],[-43.3012701892,0,-25],[-21.6506350946,-37.5,-25],[21.6506350946,-37.5,-25],[0,0,-50]],[[1,0,2],[13,7,8],[2,0,3],[13,8,9],[3,0,4],[13,9,10],[4,0,5],[13,10,11],[5,0,6],[13,11,12],[6,0,1],[13,12,7],[1,2,8],[1,8,7],[2,3,9],[2,9,8],[3,4,10],[3,10,9],[4,5,11],[4,11,10],[5,6,12],[5,12,11],[6,1,7],[6,7,12]]]);
|
||
|
assert_approx(spheroid(d=100),[[[0,0,50],[43.3012701892,0,25],[21.6506350946,37.5,25],[-21.6506350946,37.5,25],[-43.3012701892,0,25],[-21.6506350946,-37.5,25],[21.6506350946,-37.5,25],[43.3012701892,0,-25],[21.6506350946,37.5,-25],[-21.6506350946,37.5,-25],[-43.3012701892,0,-25],[-21.6506350946,-37.5,-25],[21.6506350946,-37.5,-25],[0,0,-50]],[[1,0,2],[13,7,8],[2,0,3],[13,8,9],[3,0,4],[13,9,10],[4,0,5],[13,10,11],[5,0,6],[13,11,12],[6,0,1],[13,12,7],[1,2,8],[1,8,7],[2,3,9],[2,9,8],[3,4,10],[3,10,9],[4,5,11],[4,11,10],[5,6,12],[5,12,11],[6,1,7],[6,7,12]]]);
|
||
|
assert_approx(spheroid(r=50,circum=true),[[[0,0,66.6666666667],[57.735026919,0,33.3333333333],[28.8675134595,50,33.3333333333],[-28.8675134595,50,33.3333333333],[-57.735026919,0,33.3333333333],[-28.8675134595,-50,33.3333333333],[28.8675134595,-50,33.3333333333],[57.735026919,0,-33.3333333333],[28.8675134595,50,-33.3333333333],[-28.8675134595,50,-33.3333333333],[-57.735026919,0,-33.3333333333],[-28.8675134595,-50,-33.3333333333],[28.8675134595,-50,-33.3333333333],[0,0,-66.6666666667]],[[1,0,2],[13,7,8],[2,0,3],[13,8,9],[3,0,4],[13,9,10],[4,0,5],[13,10,11],[5,0,6],[13,11,12],[6,0,1],[13,12,7],[1,2,8],[1,8,7],[2,3,9],[2,9,8],[3,4,10],[3,10,9],[4,5,11],[4,11,10],[5,6,12],[5,12,11],[6,1,7],[6,7,12]]]);
|
||
|
assert_approx(spheroid(r=50,style="orig"),[[[25,0,43.3012701892],[12.5,21.6506350946,43.3012701892],[-12.5,21.6506350946,43.3012701892],[-25,0,43.3012701892],[-12.5,-21.6506350946,43.3012701892],[12.5,-21.6506350946,43.3012701892],[50,0,0],[25,43.3012701892,0],[-25,43.3012701892,0],[-50,0,0],[-25,-43.3012701892,0],[25,-43.3012701892,0],[25,0,-43.3012701892],[12.5,21.6506350946,-43.3012701892],[-12.5,21.6506350946,-43.3012701892],[-25,0,-43.3012701892],[-12.5,-21.6506350946,-43.3012701892],[12.5,-21.6506350946,-43.3012701892]],[[5,4,3,2,1,0],[12,13,14,15,16,17],[6,0,1],[6,1,7],[7,1,2],[7,2,8],[8,2,3],[8,3,9],[9,3,4],[9,4,10],[10,4,5],[10,5,11],[11,5,0],[11,0,6],[12,6,7],[12,7,13],[13,7,8],[13,8,14],[14,8,9],[14,9,15],[15,9,10],[15,10,16],[16,10,11],[16,11,17],[17,11,6],[17,6,12]]]);
|
||
|
assert_approx(spheroid(r=50,style="aligned"),[[[0,0,50],[43.3012701892,0,25],[21.6506350946,37.5,25],[-21.6506350946,37.5,25],[-43.3012701892,0,25],[-21.6506350946,-37.5,25],[21.6506350946,-37.5,25],[43.3012701892,0,-25],[21.6506350946,37.5,-25],[-21.6506350946,37.5,-25],[-43.3012701892,0,-25],[-21.6506350946,-37.5,-25],[21.6506350946,-37.5,-25],[0,0,-50]],[[1,0,2],[13,7,8],[2,0,3],[13,8,9],[3,0,4],[13,9,10],[4,0,5],[13,10,11],[5,0,6],[13,11,12],[6,0,1],[13,12,7],[1,2,8],[1,8,7],[2,3,9],[2,9,8],[3,4,10],[3,10,9],[4,5,11],[4,11,10],[5,6,12],[5,12,11],[6,1,7],[6,7,12]]]);
|
||
|
assert_approx(spheroid(r=50,style="stagger"),[[[0,0,50],[37.5,21.6506350946,25],[0,43.3012701892,25],[-37.5,21.6506350946,25],[-37.5,-21.6506350946,25],[0,-43.3012701892,25],[37.5,-21.6506350946,25],[43.3012701892,0,-25],[21.6506350946,37.5,-25],[-21.6506350946,37.5,-25],[-43.3012701892,0,-25],[-21.6506350946,-37.5,-25],[21.6506350946,-37.5,-25],[0,0,-50]],[[1,0,2],[13,7,8],[2,0,3],[13,8,9],[3,0,4],[13,9,10],[4,0,5],[13,10,11],[5,0,6],[13,11,12],[6,0,1],[13,12,7],[1,2,8],[1,8,7],[2,3,9],[2,9,8],[3,4,10],[3,10,9],[4,5,11],[4,11,10],[5,6,12],[5,12,11],[6,1,7],[6,7,12]]]);
|
||
|
assert_approx(spheroid(r=50,style="octa"),[[[0,0,50],[35.3553390593,0,35.3553390593],[0,35.3553390593,35.3553390593],[-35.3553390593,0,35.3553390593],[0,-35.3553390593,35.3553390593],[50,0,0],[35.3553390593,35.3553390593,0],[0,50,0],[-35.3553390593,35.3553390593,0],[-50,0,0],[-35.3553390593,-35.3553390593,0],[0,-50,0],[35.3553390593,-35.3553390593,0],[35.3553390593,0,-35.3553390593],[0,35.3553390593,-35.3553390593],[-35.3553390593,0,-35.3553390593],[0,-35.3553390593,-35.3553390593],[0,0,-50]],[[0,2,1],[0,3,2],[0,4,3],[0,1,4],[17,15,16],[17,14,15],[17,13,14],[17,16,13],[1,6,5],[1,2,6],[13,5,6],[13,6,14],[2,7,6],[14,6,7],[2,8,7],[2,3,8],[14,7,8],[14,8,15],[3,9,8],[15,8,9],[3,10,9],[3,4,10],[15,9,10],[15,10,16],[4,11,10],[16,10,11],[4,12,11],[4,1,12],[16,11,12],[16,12,13],[1,5,12],[13,12,5]]]);
|
||
|
assert_approx(spheroid(r=50,style="icosa"),[[[0,0,50],[35.0314634611,-25.4518480228,25],[35.0314634611,25.4518480228,25],[0,0,50],[35.0314634611,25.4518480228,25],[-13.3808283665,41.1819551773,25],[0,0,50],[-13.3808283665,41.1819551773,25],[-43.3012701892,8.32667268469e-15,25],[0,0,50],[-43.3012701892,0,25],[-13.3808283665,-41.1819551773,25],[0,0,50],[-13.3808283665,-41.1819551773,25],[35.0314634611,-25.4518480228,25],[43.3012701892,0,-25],[35.0314634611,-25.4518480228,25],[35.0314634611,25.4518480228,25],[13.3808283665,41.1819551773,-25],[35.0314634611,25.4518480228,25],[-13.3808283665,41.1819551773,25],[-35.0314634611,25.4518480228,-25],[-13.3808283665,41.1819551773,25],[-43.3012701892,-5.55111512313e-15,25],[-35.0314634611,-25.4518480228,-25],[-43.3012701892,1.38777878078e-15,25],[-13.3808283665,-41.1819551773,25],[13.3808283665,-41.1819551773,-25],[-13.3808283665,-41.1819551773,25],[35.0314634611,-25.4518480228,25],[0,0,-50],[-35.0314634611,25.4518480228,-25],[-35.0314634611,-25.4518480228,-25],[0,0,-50],[-35.0314634611,-25.4518480228,-25],[13.3808283665,-41.1819551773,-25],[0,0,-50],[13.3808283665,-41.1819551773,-25],[43.3012701892,-8.32667268469e-15,-25],[0,0,-50],[43.3012701892,0,-25],[13.3808283665,41.1819551773,-25],[0,0,-50],[13.3808283665,41.1819551773,-25],[-35.0314634611,25.4518480228,-25],[-43.3012701892,0,25],[-35.0314634611,25.4518480228,-25],[-35.0314634611,-25.4518480228,-25],[-13.3808283665,-41.1819551773,25],[-35.0314634611,-25.4518480228,-25],[13.3808283665,-41.1819551773,-25],[35.0314634611,-25.4518480228,25],[13.3808283665,-41.1819551773,-25],[43.3012701892,5.55111512313e-15,-25],[35.0314634611,25.4518480228,25],[43.3012701892,-1.38777878078e-15,-25],[13.3808283665,41.1819551773,-25],[-13.3808283665,41.1819551773,25],[13.3808283665,41.1819551773,-25],[-35.0314634611,25.4518480228,-25]],[[0,2,1],[3,5,4],[6,8,7],[9,11,10],[12,14,13],[16,17,15],[19,20,18],[22,23,21],[25,26,24],[28,29,27],[31,32,30],[34,35,33],[37,38,36],[40,41,39],[43,44,42],[45,47,46],[48,50,49],[51,53,52],[54,56,55],[57,59,58]]]);
|
||
|
}
|
||
|
test_spheroid();
|
||
|
|
||
|
|
||
|
|
||
|
// vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|