openjscad-aurora-webapp

Форк
0
/
umbilical_torus.jscad 
47 строк · 1.2 Кб
1
// title: Umbilical Torus generator
2
// author: Bruce Mueller 
3
// date: 2013/03/30 
4
// license: Creative Commons CC BY-SA
5
// description: adapted for OpenJSCAD.org by Rene K. Mueller 2013/03/30
6

7
// inc = incremental segments
8
// r = radius of circle
9
// t = 'radius' of triangle -distance from center to vertex
10
// a = angle of rotation of triangle
11
// b = angle rotation around center of circle
12

13
function tri(r,t,a,b) { return [(r + t*sin(a))*cos(b), (r+ t*sin(a))*sin(b), t*cos(a)]; }
14

15
// module to generate a rotated triangle slice, inc degrees wide
16
// (could not implement this in the for loop below)
17

18
function wedge(r,t,i,inc) {
19
	var a1 = tri(r,t,i/3,i);
20
	var b1 = tri(r,t,120+i/3,i);
21
	var c1 = tri(r,t,240+i/3,i);
22
	j = i+inc;
23
	var a2 = tri(r,t,j/3,j);
24
	var b2 = tri(r,t,120+j/3,j);
25
	var c2 = tri(r,t,240+j/3,j);
26
	
27
	return polyhedron({
28
		points: [a1,b1,c1,a2,b2,c2],
29
		triangles: [ [0,1,2], [5,4,3], 
30
			[3,4,0], [1,0,4],
31
			[3,0,2], [3,2,5],
32
			[5,2,4], [4,2,1] ] });
33
}
34

35

36
// created a conjoined set of triangular wedges around the circle
37

38

39
function main() {
40
   var inc = 10;
41
   var o = [];
42

43
   for(var i=0; i<360; i+=inc) {
44
      o.push(wedge(2,1,i,inc));
45
   }
46
   return union(o).scale(10);        // would be more effectice & suitable to create just one polyhedron
47
}
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.