openjscad-aurora-webapp

Форк
0
41 строка · 1.1 Кб
1
// title: Rose Curve
2
// author: Eduard Bespalov
3
// license: MIT License
4
// description: testing solidFromSlices()
5

6
function main(params) {
7
	var radius = 50,
8
		height = 60,
9
		vec = new CSG.Vector3D(0, 5, 0),
10
		angle;
11

12
	angle = 360 / 5;
13
	var pent = CSG.Polygon.createFromPoints([
14
			vec,
15
			vec.rotateZ(1 * angle),
16
			vec.rotateZ(2 * angle),
17
			vec.rotateZ(3 * angle),
18
			vec.rotateZ(4 * angle)
19
		]).rotateY(90).setColor([1,0,0.1]);//.translate([0, radius, 0]);
20

21
	//rose: r = a * sin(k * fi)
22
	// k = 5 /3
23
	var k = 5 / 3;
24
	return pent.solidFromSlices({
25
		numslices: 300,
26
		loop: true,
27
		callback: function(t, slice) {
28
			var angle = t * Math.PI * 3,
29
				r = radius * Math.sin(k * angle),
30
				x = r * Math.cos(angle),
31
				y = r * Math.sin(angle),
32
				vec = new CSG.Vector3D(x, y, 0);
33
				//normal
34
				var x1 = radius * (k * Math.cos(k * angle) * Math.cos(angle) - Math.sin(angle) * Math.sin(k * angle)),
35
					y1 = radius * (k * Math.cos(k * angle) * Math.sin(angle) + Math.cos(angle) * Math.sin(k * angle)),
36
					turn = (new CSG.Vector2D(x1, y1)).angleDegrees();
37

38
			return this.rotateZ(turn).translate(vec);
39
		}
40
	});
41
}
42

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

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

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

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