Compare commits

..

No commits in common. "9206eff8c14155d8a6f1abcdbf4cf1f517e71c5e" and "69d8ef1c45e6af07c0d1775b6743f71d4b8be014" have entirely different histories.

22
tree.js
View File

@ -1,10 +1,7 @@
const balance_angle = angle => angle * (Math.PI / 180) function stem(ctx, x1, y1, length, angle) {
const stem = (ctx, x1, y1, length, angle) => {
// Визначити координати кіня стовбура знаючи почткову точку стовбура, його довжину та кут нахилу. Так, це тригонометрія в дії :) // Визначити координати кіня стовбура знаючи почткову точку стовбура, його довжину та кут нахилу. Так, це тригонометрія в дії :)
const balanced_angle = balance_angle(angle) var x2 = x1 + length * Math.sin(angle * (Math.PI /180));
let x2 = x1 + length * Math.sin(balanced_angle); var y2 = y1 - length * Math.cos(angle * (Math.PI /180));
let y2 = y1 - length * Math.cos(balanced_angle);
ctx.beginPath(); ctx.beginPath();
ctx.moveTo(x1, y1); ctx.moveTo(x1, y1);
@ -15,13 +12,13 @@ const stem = (ctx, x1, y1, length, angle) => {
// Закоментуй цей IF. Що змінилось в картинці дерева? Чому стало гірше? // Закоментуй цей IF. Що змінилось в картинці дерева? Чому стало гірше?
if (length > 20) { if (length > 20) {
x2 = x1 + (length * 0.95) * Math.sin(balanced_angle); x2 = x1 + (length * 0.95) * Math.sin(angle * (Math.PI /180));
y2 = y1 - (length * 0.95) * Math.cos(balanced_angle); y2 = y1 - (length * 0.95) * Math.cos(angle * (Math.PI /180));
} }
if (length > 1) { if (length > 1) {
const rnd1 = Math.random() *20 -10; // [-10.0 .. +10.0] var rnd1 = Math.random() *20 -10; // [-10.0 .. +10.0]
const rnd2 = Math.random() *0.2 +0.6; // [ 0.6 .. 0.8] var rnd2 = Math.random() *0.2 +0.6; // [ 0.6 .. 0.8]
// Малюємо розгалудження стовбура. За початок нового стовбура використовується кінець поточного стовбура // Малюємо розгалудження стовбура. За початок нового стовбура використовується кінець поточного стовбура
stem(ctx, x2, y2, length * rnd2, angle + 35 +rnd1); stem(ctx, x2, y2, length * rnd2, angle + 35 +rnd1);
@ -29,5 +26,8 @@ const stem = (ctx, x1, y1, length, angle) => {
} }
} }
const tree = (ctx, x, y, height) => stem(ctx, x, y, height, 0); function tree(ctx, x, y, height) {
stem(ctx, x, y, height, 0);
}