alfa=50; translate ([-2,-6,0]) text("A",size=4); translate ([62,79,0]) text("B",size=4); translate ([105,26,0]) text("C",size=4); translate ([32,-6,0]) text("D",size=4); AB=100; BC=62; CD=77; DA=31; // AB rotate ([0,0,alfa]) translate ([0,-0.2,0]) square ([AB,0.4]); // DA translate ([0,-0.2,0]) square ([DA,0.4]); // gebruik de cosinusregel om BD uit te rekenen (2 zijden en de ingesloten hoek) // lengte BD BD=sqrt(pow(AB,2)+pow(DA,2)-2*AB*DA*cos(alfa)); echo(BD); // hoek BD ADB=acos((pow(DA,2)+pow(BD,2)-pow(AB,2))/(2*BD*DA)); echo("ADB=",ADB); // teken BD met de uitgerekende waarden color ("red") translate ([DA,0,0]) rotate ([0,0,180-ADB]) translate ([0,-0.2,0]) square ([BD,0.4]); // gebruik de cosinusregel om BDC uit te rekenen (drie zijden) BDC=acos((pow(BD,2)+pow(CD,2)-pow(BC,2))/(2*BD*CD)); echo("BDC=",BDC); // teken CD met de uitgerekende hoek if (alfa>=0&&alfa<=180) { translate ([DA,0,0]) rotate ([0,0,180-ADB-BDC]) translate ([0,-0.2,0]) square ([CD,0.4]); // CD } else { translate ([DA,0,0]) rotate ([0,0,180+ADB-BDC]) translate ([0,-0.2,0]) square ([CD,0.4]); // CD }; BCD=acos((pow(BC,2)+pow(CD,2)-pow(BD,2))/(2*BC*CD)); echo("BCD=",BCD); hoek1=-((BCD-(180-ADB-BDC))); hoek2=-((BCD-(180+ADB-BDC))); // teken BC met de uitgerekende hoek if (alfa>=0&&alfa<=180) { translate ([AB*cos(alfa),AB*sin(alfa),0]) rotate ([0,0,hoek1]) translate ([0,-0.2,0]) square ([BC,0.4]); // BC } else { translate ([AB*cos(alfa),AB*sin(alfa),0]) rotate ([0,0,hoek2]) translate ([0,-0.2,0]) square ([BC,0.4]); // BC }