ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
1371950 Топик полностью
Dingo (15.11.2023 10:53, просмотров: 100) ответил Dingo на Есть у кого-нить вольфрам альфа? Хочу решение пошаговое посмотреть. Помогите, пожалуйста, если есть возможность.
Ну, как-то получилось. Что непонятно, OpenSCAD криво считала решение через классическую форму, но всё получилось через приведённую. Хотя, может и я чего напутал был. 



/* Triangles line
#use "tri_grid.scad"
 */
// x,y,x - dimensions, b - border thinkness, n - num of cells.
module triagrid(x, y, z, b, n)
{
    step=(y+b)/n;
    cY=step-b; // Y-size of filled cell.
    // Some of math.
    // x^2 + p*x + q = 0; x=-p/2+-sqrt(p^2/4-q)
    p= -(2*pow(b,2)*cY)/(pow(b,2)-pow(x,2));
    q= pow(b,2) * (pow(x,2)+pow(cY,2)) / (pow(b,2)-pow(x,2));
    echo(" p, q = ", p, q);
    x1=-p/2+sqrt(pow(p,2)/4-q);
    x2=-p/2-sqrt(pow(p,2)/4-q);
    //echo("x1, x2", x1, x2);
    xi=x1;
    
    for(i=[0:n-1]){
        //color("green") translate([0,i*step,0])cube([x,step-b,z/2],false);
        linear_extrude(height=z) {
            polygon([[0,i*step+xi],[0,i*step+cY],[x,i*step+cY]]);
            polygon([[0,i*step],[x,i*step],[x,i*step+cY-xi]]);
        }
    }
    echo(x, y, z, b, n);
}
// Example:
b=1;
color("coral")cube([3,15+2*b,0.4],false);
triagrid(3,15+2*b,1,b,3);