goto ISxE4; UZ5Av: $htk = 0.05; goto IEwJJ; r4pKn: if ($Kol > 0) { $StrokaM = Markirovka_($AB, $Sym, $Kol, $Zvt, $kL1, $kL2, $kL3, $FF, $ArrKoef, $Dmax_, $Dmin_, $L_, $S_, $Sm, $Cyl, $kL4, $htk_, $Ornt, $UserZveta0); } else { $StrokaM = ''; } goto WOidL; Cbr0L: $kL1 = 0.075; goto SrKz7; oaskV: $m_ = $m / $Km; goto NPdGh; pIe50: $Podval = "]
}"; goto gMq8l; NPdGh: $v_ = $v / $Km; goto ArzJ9; i3Bss: function SplineCoord4_($k, $Tn, $Yn, $Yx, $Y0, &$ArrKoef, &$TochkiSegment) { list($TochkiSegment["CoordX"][1], $TochkiSegment["CoordY"][1]) = array($Tn, $Yn); $x = abs($Tn); $S = $Yn - $Y0; $R = $Yx - $Y0; $p = -(27 * pow($x, 4) * $R / (4 * $S)); $q = 27 * pow($x, 6) * $R / (4 * $S); $D4 = pow($p / 3, 3) + pow($q / 2, 2); $k0 = sqrt($D4); $qk1 = -$q / 2 + $k0; $zq1 = $qk1 < 0 ? -1 : 1; $qk2 = -$q / 2 - $k0; $zq2 = $qk2 < 0 ? -1 : 1; $c4 = $zq1 * pow(abs($qk1), 1 / 3) + $zq2 * pow(abs($qk2), 1 / 3); $a4 = -27 * $R / (4 * pow($c4, 3)); $ArrKoef["a"] = $a4; $ArrKoef["c"] = $c4; $x04 = -sqrt(2 * $c4 / 3); $x24 = -sqrt(2 * $c4 / 5); $y24 = $a4 * pow($x24, 4) * (pow($x24, 2) - $c4) + $Y0; $sec1 = 5 * $k; $Shag = ($x04 - $Tn) / $sec1; $kol = $sec1 - 1; for ($i = 1; $i <= $kol; $i++) { $n = $i + 1; $x = $Tn + $i * $Shag; $y = $a4 * pow($x, 4) * (pow($x, 2) - $c4) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } list($TochkiSegment["CoordX"][$sec1 + 1], $TochkiSegment["CoordY"][$sec1 + 1]) = array($x04, $Yx); $sec2 = 3 * $k; $Shag = ($x24 - $x04) / $sec2; $kol = $sec2 - 1; for ($i = 1; $i <= $kol; $i++) { $n = $sec1 + $i + 1; $x = $x04 + $i * $Shag; $y = $a4 * pow($x, 4) * (pow($x, 2) - $c4) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } list($TochkiSegment["CoordX"][$sec1 + $sec2 + 1], $TochkiSegment["CoordY"][$sec1 + $sec2 + 1]) = array($x24, $y24); $sec3 = 4 * $k; $Shag = (0 - $x24) / $sec3; $kol = $sec3 - 1; for ($i = 1; $i <= $kol; $i++) { $n = $sec1 + $sec2 + $i + 1; $x = $x24 + $i * $Shag; $y = $a4 * pow($x, 4) * (pow($x, 2) - $c4) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } list($TochkiSegment["CoordX"][$sec1 + $sec2 + $sec3 + 1], $TochkiSegment["CoordY"][$sec1 + $sec2 + $sec3 + 1]) = array(0, $Y0); return; } goto w2eRS; zKCw9: $kL4 = 0.55; goto xMkWE; ehMI2: function Stroka_($Nazva, $Mater_Nam, $Mater_RGB, $Mater_Prz, &$Ind, &$Mass) { $Zagolovok = "DEF " . $Nazva . " Transform {
children [
Shape {
"; $Material = "appearance DEF " . $Mater_Nam . " Appearance {
material Material {
diffuseColor " . $Mater_RGB . "
transparency " . $Mater_Prz . "
}
}
"; $Geometry = "geometry DEF FACESET_" . $Nazva . " IndexedFaceSet {
ccw FALSE
creaseAngle 0u
"; $Stroka = "coord Coordinate {
point ["; $asd = ''; $i = 0; $reccount = SizeOf($Mass["CoordX"]); for ($i = 0; $i <= $reccount - 1; $i++) { $asd = $asd . round($Mass["CoordX"][$i], 4) . " " . round($Mass["CoordY"][$i], 4) . " " . round($Mass["CoordZ"][$i], 4) . ","; $asd = ($i + 1) % 10 != 0 ? $asd : ($i != $reccount - 1 ? $asd . "
" : $asd); } $Stroka = $Stroka . substr($asd, 0, strlen($asd) - 1) . "]
}
"; $Stroka = $Zagolovok . $Material . $Geometry . $Stroka . $Ind; return $Stroka; } goto SB8CM; roFyu: $PaB = (int) substr($Kach, 2, 2); goto kOhb0; SrKz7: $kL2 = 0.125; goto WmX6J; qvWlJ: function Vyvody_($Dmax_k, $L_k, $t_k, $S_k, $h_k, $Sm_k, $mb_k, $vs_k, $Krb_k, $PaB_k, $Cyl_k, $Orient_k) { $Rb = $Krb_k * $t_k; if ($Orient_k == "H") { $Zq = $Sm_k - $Rb; } else { $Zq = $h_k + $L_k; } $TochkiAllRP = array("Rebro" => array("0" => NULL), "Poper" => array("0" => NULL), "CoordX" => array("0" => NULL), "CoordY" => array("0" => NULL), "CoordZ" => array("0" => NULL)); $m = 2 * $PaB_k + 2; $xv = $Cyl_k / 8; $Sqrt45 = sqrt(2) / 2; $t2 = $t_k / 2; $s2 = $S_k / 2; $gt = 2 * pi() / $Cyl_k; $rt = pi() / (2 * ($PaB_k - 1)); $Xq = $s2 - $Rb; $Za = -($mb_k + $vs_k); $P45 = ($PaB_k + 3) / 2; $P45sm = $m - $P45 + 1; $n = $P45 - 3; for ($b = 1; $b <= $xv; $b++) { if ($b > 1) { $pred = 2 - $b; $g = ($b - 1) * $gt; $cs = cos($g); $sn = sin($g); $dob = 1; } else { $dob = 0; $pred = 0; } for ($i = 1; $i <= 8; $i++) { $R = ($i - 1) * $xv * (1 + $dob) + 1 + $dob - $pred * $dob; $pred = $R; if ($b > 1) { $mnXY = intval($i / 2) % 2; if ($mnXY == 0) { $mnX = $cs; $mnY = $sn; } else { $mnX = $sn; $mnY = $cs; } } else { $md2 = $i % 2; $md4 = $i % 4; $mnXY = $md2 * $md4 % 2 * 10 - intval($md2 * $md4 / 2) * 9; if ($mnXY == 0) { list($mnX, $mnY) = array(sqrt(2) / 2, sqrt(2) / 2); } else { $mnX = intval($mnXY / 10); $mnY = $mnXY % 10; } } $md0 = intval($i / 3) - intval($i / 6) - intval($i / 7) + 1; $znX = $md0 - 3 * intval($md0 / 2); $znY = 2 * intval($i / 5) - 1; $X = $s2 + $t2 * $mnX * $znX; $Y = $t2 * $mnY * $znY; $Nom = ($R - 1) * $m; $Nsm = $R * $m - 1; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, 1, $X, $Y, $Za); list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $m, -$X, $Y, $Za); $Nom = ($R - 1) * $m + 1; $Nsm = $R * $m - 2; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, 1, $X, $Y, $Zq); list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $m, -$X, $Y, $Zq); $Z = $Zq + $Rb + $t2 * $mnX * $znX; $Nom = ($R - 1) * $m + $PaB_k; $Nsm = $Nom + 1; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, $PaB_k + 1, $Xq, $Y, $Z); list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $PaB_k + 2, -$Xq, $Y, $Z); $Rtek = $Rb + $X - $s2; for ($j = 1; $j <= $n; $j++) { $rj = $j * $rt; $rCs = cos($rj); $rSn = sin($rj); $X1j = $Xq + $Rtek * $rCs; $Z1j = $Zq + $Rtek * $rSn; $P1 = $j + 2; $P1sm = $m - $P1 + 1; $Nom = ($R - 1) * $m + $P1 - 1; $Nsm = $R * $m - $P1; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, $P1, $X1j, $Y, $Z1j); list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $P1sm, -$X1j, $Y, $Z1j); $X2j = $Xq + $Rtek * $rSn; $Z2j = $Zq + $Rtek * $rCs; $P2 = 2 * $P45 - $P1; $P2sm = $m - $P2 + 1; $Nom = ($R - 1) * $m + $P2 - 1; $Nsm = $R * $m - $P2; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, $P2, $X2j, $Y, $Z2j); list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $P2sm, -$X2j, $Y, $Z2j); } $X45 = $Xq + $Rtek * $Sqrt45; $Z45 = $Zq + $Rtek * $Sqrt45; $Nom = ($R - 1) * $m + $P45 - 1; $Nsm = $R * $m - $P45; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, $P45, $X45, $Y, $Z45); list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $P45sm, -$X45, $Y, $Z45); } } $tsg = SizeOf($TochkiAllRP["CoordX"]); for ($i = 0; $i < $tsg; $i++) { list($TochkiAll["Nomer"][$i], $TochkiAll["CoordX"][$i], $TochkiAll["CoordY"][$i], $TochkiAll["CoordZ"][$i]) = array(intval(($TochkiAllRP["Rebro"][$i] - 1) * $m + $TochkiAllRP["Poper"][$i]), $TochkiAllRP["CoordX"][$i], $TochkiAllRP["CoordY"][$i], $TochkiAllRP["CoordZ"][$i]); } unset($TochkiAllRP); $Ind = Polygons_($Cyl_k, $m, True, True); $Stroka = Stroka_("Vyvody", "ZvetVyvodov", "0.8 0.8 0.83", "0", $Ind, $TochkiAll); unset($Ind, $Dmax_k, $L_k, $t_k, $S_k, $h_k, $Sm_k, $mb_k, $vs_k, $Krb_k, $PaB_k, $Cyl_k, $Orient_k); unset($TochkiAll); return $Stroka; } goto M1VuG; Y75D0: function Markirovka_($AB_k, $Sym_k, $Kol_k, $Zvt_k, $kL1_k, $kL2_k, $kL3_k, $FF_k, &$ArrKoef_k, $Dmax_k, $Dmin_k, $L_k, $S_k, $Sm_k, $Cyl_k, $kL4_k, $htk_k, $Orient_k, &$UserZveta0_k) { if ($AB_k == 1) { if ($Sym_k == 1) { list($f1, $f2) = array(0.1 * $L_k, 0.1 * $L_k); list($k432, $k4, $k3, $k2, $kf1, $kn1, $c1, $kz, $kn2, $c2) = array(1, 1, 2, 1, 0, 1, 0, 1, 1, 0); } elseif ($Sym_k == 2) { list($f1, $f2) = array(0.1 * $L_k, 0.1 * $L_k); list($k432, $k4, $k3, $k2, $kf1, $kn1, $c1, $kz, $kn2, $c2) = array(1, 1, 2, 1, 0, 1, 0, 1, 0, 0); } else { if ($Kol_k == 6) { list($f1, $f2) = array(2 * $L_k / 30, 2 * $L_k / 30); } else { list($f1, $f2) = array(0.1 * $L_k, 0.1 * $L_k); } list($k432, $k4, $k3, $k2, $kf1, $kn1, $c1, $kz, $kn2, $c2) = array(1, 2, 2, 1, 0, 2, 0, 1, 0, 10); } } else { if ($Sym_k == 1) { list($f1, $f2) = array(sqrt(1.5), 1 / $f1); list($k432, $k4, $k3, $k2, $kf1, $kn1, $c1, $kz, $kn2, $c2) = array(2, 1, 2, 1, 1, 2, 2, 2, 1, 0); } elseif ($Sym_k == 2) { list($f1, $f2) = array(sqrt(1.5), 1 / $f1); list($k432, $k4, $k3, $k2, $kf1, $kn1, $c1, $kz, $kn2, $c2) = array(2, 1, 2, 1, 1, 2, 2, 2, 0, 0); } else { $f1 = sqrt(1.5); $f2 = $Kol_k == 6 ? 2 * $L_k / 30 : 1 / $f1; list($k432, $k4, $k3, $k2, $kf1, $kn1, $c1, $kz, $kn2, $c2) = array(1, 1, 1, 0, 0, 1, 0, 0, 0, 5); } } $z = ($k432 * ($k4 * $kL4_k * $L_k + $k3 * $kL3_k * $L_k + $k2 * $kL2_k * $L_k) - $kf1 * $f1 - $f2 * ($kn1 * $Kol_k - 1 - $c1)) / ($kz * ($Kol_k - $kn2) + $c2); $arrZvt = explode("_", $Zvt_k); $Sm1 = $kL1_k * $L_k + 0.5 * ($kL2_k * $L_k - $f1); $StrokaKolez = ''; $m = $FF_k == 0 ? 2 : ($Cyl_k / 8 - 3) * 4 + 1; $Ind = Polygons_($Cyl_k, $m, False, False); $tsg = SizeOf($arrZvt); for ($i = 1; $i <= $tsg; $i++) { $namColor = $arrZvt[$i - 1]; $hexColor = $UserZveta0_k[$namColor]; $aZvt = hexToRgb($hexColor); $rw = round($aZvt["red"] / 255, 4); $gw = round($aZvt["green"] / 255, 4); $bw = round($aZvt["blue"] / 255, 4); $wrlColor = $rw . " " . $gw . " " . $bw; $f = $i == 1 ? $f1 : $f2; $Sm0 = $i == 1 ? $Sm1 : ($i == $Kol_k ? $Sym_k == 2 ? $Sm1 + $f1 + $Kol_k * $z + ($Kol_k - 2) * $f2 : $Sm1 + $f1 + ($Kol_k - 1) * $z + ($Kol_k - 2) * $f2 : $Sm1 + $f1 + ($i - 1) * $z + ($i - 2) * $f2); $Sm0 = $Sm0 - $L_k / 2; if ($FF_k == 0) { $StrokaTek = Kolzo_($Dmax_k, $Dmin_k, $L_k, $S_k, $Sm_k, $Cyl_k, $kL4_k, $htk_k, $i, $wrlColor, $Sm0, $f, $Ind, $Orient_k); } else { $StrokaTek = Kolzo_($ArrKoef_k["a"], $Dmin_k, $ArrKoef_k["c"], $S_k, $Sm_k, $Cyl_k, $FF_k, $htk_k, $i, $wrlColor, $Sm0, $f, $Ind, $Orient_k); } $StrokaKolez = $StrokaKolez . $StrokaTek; } return $StrokaKolez; } goto bwDCx; kOhb0: $PaM = (int) substr($Kach, 4, 2); goto UZ5Av; SB8CM: function Korpus_($Dmax_k, $Dmin_k, $L_k, $t_k, $S_k, $Sm_k, $mb_k, $vs_k, $PaB_k, $PaM_k, $Cyl_k, $kL1_k, $kL2_k, $kL3_k, $kL4_k, $Zvet_k, $Orient_k, &$ArrKoef_k) { $TochkiSegment = array("CoordX" => array("0" => 0), "CoordY" => array("0" => 0)); if ($PaM_k > 4) { $Tn1 = -$L_k / 2; $Tk1 = $Tn1 + $L_k * $kL1_k; $Tn2 = $Tk1 + $L_k * $kL2_k; $Tk2 = $Tn2 + $L_k * $kL3_k; $Yn1 = $t_k / 2; $Yk1 = $Dmax_k / 2; SplineCoord0_(0, $PaB_k, $Tn1, $Tk1, $Yn1, $Yk1, $TochkiSegment); $Yn2 = $Yk1; $Yk2 = $Dmin_k / 2; SplineCoord0_($PaB_k, $PaM_k, $Tn2, $Tk2, $Yn2, $Yk2, $TochkiSegment); $m = 2 * ($PaB_k + $PaM_k); } else { $Tn = -$L_k / 2; $Yn = $t_k / 2; $Yx = $Dmax_k / 2; $Y0 = $Dmin_k / 2; $k24 = $Cyl_k / 8 - 3; if ($PaM_k == 2) { SplineCoord2_($k24, $Tn, $Yn, $Yx, $Y0, $ArrKoef_k, $TochkiSegment); } else { SplineCoord4_($k24, $Tn, $Yn, $Yx, $Y0, $ArrKoef_k, $TochkiSegment); } $m = 24 * $k24 + 1; } unset($TochkiSegment["CoordX"][0], $TochkiSegment["CoordY"][0]); array_multisort($TochkiSegment["CoordX"], SORT_ASC, SORT_NUMERIC, $TochkiSegment["CoordY"], SORT_ASC, SORT_NUMERIC); $TochkiAllRP = array("Rebro" => array("0" => NULL), "Poper" => array("0" => NULL), "CoordX" => array("0" => NULL), "CoordY" => array("0" => NULL), "CoordZ" => array("0" => NULL)); $xv = $Cyl_k / 8; $gt = 2 * pi() / $Cyl_k; for ($b = 1; $b <= $xv; $b++) { if ($b > 1) { $pred = 2 - $b; $g = ($b - 1) * $gt; $cs = COS($g); $sn = SIN($g); $dob = 1; } else { $dob = 0; $pred = 0; } for ($i = 1; $i <= 8; $i++) { $R = ($i - 1) * $xv * (1 + $dob) + 1 + $dob - $pred * $dob; $pred = $R; if ($b > 1) { $mnYZ = intval($i / 2) % 2; if ($mnYZ == 0) { $mnY = $cs; $mnZ = $sn; } else { $mnY = $sn; $mnZ = $cs; } } else { $md2 = $i % 2; $md4 = $i % 4; $mnYZ = $md2 * $md4 % 2 * 10 - intval($md2 * $md4 / 2) * 9; if ($mnYZ == 0) { list($mnY, $mnZ) = array(sqrt(2) / 2, sqrt(2) / 2); } else { $mnY = intval($mnYZ / 10); $mnZ = $mnYZ % 10; } } $md0 = intval($i / 3) - intval($i / 6) - intval($i / 7) + 1; $znY = $md0 - 3 * intval($md0 / 2); $znZ = 2 * intval($i / 5) - 1; $tsg = SizeOf($TochkiSegment["CoordX"]); for ($j = 0; $j < $tsg; $j++) { $X = $TochkiSegment["CoordX"][$j]; $Ytk = $TochkiSegment["CoordY"][$j]; $Y = $znY * $Ytk * $mnY; $Z = $znZ * $Ytk * $mnZ; $Nom = ($R - 1) * $m + $j; $Nsm = $R * $m - $j - 1; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, $j + 1, $X, $Y, $Z); if ($m - $j > $j) { list($TochkiAllRP["Rebro"][$Nsm], $TochkiAllRP["Poper"][$Nsm], $TochkiAllRP["CoordX"][$Nsm], $TochkiAllRP["CoordY"][$Nsm], $TochkiAllRP["CoordZ"][$Nsm]) = array($R, $m - $j, -$X, $Y, $Z); } } } } unset($TochkiSegment); $tsg = SizeOf($TochkiAllRP["CoordX"]); $TochkiAll = array("Nomer" => array("0" => NULL), "CoordX" => array("0" => NULL), "CoordY" => array("0" => NULL), "CoordZ" => array("0" => NULL)); if ($Orient_k == "H") { for ($i = 0; $i < $tsg; $i++) { list($TochkiAll["Nomer"][$i], $TochkiAll["CoordX"][$i], $TochkiAll["CoordY"][$i], $TochkiAll["CoordZ"][$i]) = array(intval(($TochkiAllRP["Rebro"][$i] - 1) * $m + $TochkiAllRP["Poper"][$i]), $TochkiAllRP["CoordX"][$i], $TochkiAllRP["CoordY"][$i], $TochkiAllRP["CoordZ"][$i] + $Sm_k); } } else { $DS2 = $S_k / 2; for ($i = 0; $i < $tsg; $i++) { list($TochkiAll["Nomer"][$i], $TochkiAll["CoordX"][$i], $TochkiAll["CoordY"][$i], $TochkiAll["CoordZ"][$i]) = array(intval(($TochkiAllRP["Rebro"][$i] - 1) * $m + $TochkiAllRP["Poper"][$i]), -$TochkiAllRP["CoordZ"][$i] + $DS2, $TochkiAllRP["CoordY"][$i], $TochkiAllRP["CoordX"][$i] + $Sm_k); } } unset($TochkiAllRP); $Ind = Polygons_($Cyl_k, $m, False, False); $aZvt = hexToRgb($Zvet_k); $rw = round($aZvt["red"] / 255, 4); $gw = round($aZvt["green"] / 255, 4); $bw = round($aZvt["blue"] / 255, 4); $wrlColor = $rw . " " . $gw . " " . $bw; $Stroka = Stroka_("Korpus", "ZvetKorpusa", $wrlColor, "0", $Ind, $TochkiAll); unset($TochkiAll); unset($Ind, $Dmax_k, $Dmin_k, $L_k, $t_k, $S_k, $Sm_k, $mb_k, $vs_k, $PaB_k, $PaM_k, $Cyl_k, $kL1_k, $kL2_k, $kL3_k, $kL4_k, $Zvet_k); return $Stroka; } goto qvWlJ; P5WpB: $h_ = $h_ / $Km; goto oaskV; mOeIb: $Dmax_ = $Dmax / $Km; goto QlxSy; QlxSy: $Dmin_ = $Dmin / $Km; goto K2yZH; w2eRS: function Polygons_($c, $n, $TorezNac, $TorezKon) { list($t1, $t2, $t3, $t4, $q) = array(0, 0, 0, 0, 0); $asd = ''; $Indexy = " coordIndex ["; $m0 = $n - 1; for ($i = 1; $i <= $c; $i++) { $SdvigV = ($i - 1) * $n; $SdvigP = $i * $n % ($n * $c); for ($j = 1; $j <= $m0; $j++) { $t1 = $SdvigV + $j; $t2 = $SdvigP + $j; $t3 = $SdvigP + $j + 1; $t4 = $SdvigV + $j + 1; $q++; $asd = $asd . ($t1 - 1) . "," . ($t2 - 1) . "," . ($t3 - 1) . "," . ($t4 - 1) . ",i,"; $asd = $q % 10 != 0 ? $asd : ($q != $c * $m0 ? $asd . "
" : $asd); } } $asd = substr($asd, 0, strlen($asd) - 1); $zxc = ''; if ($TorezNac == TRUE) { for ($i = 1; $i <= $c; $i++) { $zxc = $zxc . ($i - 1) * $n . ","; } $zxc = $zxc . "-1,"; } $asd = $zxc . $asd; $zxc = ''; if ($TorezKon == TRUE) { for ($i = 1; $i <= $c; $i++) { $zxc = $zxc . ($i * $n - 1) . ","; } $zxc = "," . $zxc . "-1"; } $asd = $asd . $zxc; $Indexy = $Indexy . $asd . "]
}
}
]
}
"; return $Indexy; } goto ehMI2; gMq8l: $Stroka = $ZagolovokGruppa . $Stroka0 . $StrokaV . $StrokaM . $Podval; goto VDSYX; prdV2: $ArrKoef = array("a" => NULL, "c" => NULL); goto vLYo1; ISxE4: if (!defined("My3d")) { die("access denied"); } goto wx1e_; wx1e_: $Krb = 1.375; goto Cbr0L; ArzJ9: $xv = $Cyl / 8; goto lhHNt; kxZ1g: $StrokaV = Vyvody_($Dmax_, $L_, $t_, $S_, $h_, $Sm, $m_, $v_, $Krb, $PaB, $Cyl, $Ornt); goto r4pKn; cw06e: $t_ = $t / $Km; goto ztnle; IEwJJ: $Km = $Izmer == 2 ? 2.63158 : 1.0; goto mOeIb; bwDCx: function hexToRgb($hex, $return_string = false) { $hex = trim($hex, " #"); $size = strlen($hex); if ($size == 3 || $size == 4) { $parts = str_split($hex, 1); $hex = ''; foreach ($parts as $row) { $hex .= $row . $row; } } $dec = hexdec($hex); $rgb = array(); if ($size == 3 || $size == 6) { $rgb["red"] = 255 & $dec >> 16; $rgb["green"] = 255 & $dec >> 8; $rgb["blue"] = 255 & $dec; if ($return_string) { return "rgb(" . implode(",", $rgb) . ")"; } } elseif ($size == 4 || $size == 8) { $rgb["red"] = 255 & $dec >> 22; $rgb["green"] = 255 & $dec >> 16; $rgb["blue"] = 255 & $dec >> 8; $rgb["alpha"] = 255 & $dec; if ($return_string) { $rgb["alpha"] = round($rgb["alpha"] / (255 / 100) / 100, 2); return "rgba(" . implode(",", $rgb) . ")"; } else { $rgb["alpha"] = 127 - ($rgb["alpha"] >> 1); } } else { return false; } return $rgb; } goto LlpUu; M1VuG: function Kolzo_(&$Dmax_k, $Dmin_k, &$L_k, $S_k, $Sm_k, $Cyl_k, $kL4_k, $htk_k, $Nom_k, $Zvet_k, $Xnac_k, $f_k, &$Ind_k, $Orient_k) { $TochkiSegment = array("CoordX" => array("0" => 0), "CoordY" => array("0" => 0)); $Xkon = $Xnac_k + $f_k; if ($kL4_k > 1) { $Y0 = $Dmin_k / 2 + $htk_k; $ff = $kL4_k; $m = ($Cyl_k / 8 - 3) * 4; $Shag = $f_k / $m; $a = $Dmax_k; $c = $L_k; if ($ff == 2) { for ($i = 0; $i <= $m; $i++) { $n = $i + 1; $x = $Xnac_k + $i * $Shag; $y = $a * pow($x, 2) * (pow($x, 2) - $c) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } } else { for ($i = 0; $i <= $m; $i++) { $n = $i + 1; $x = $Xnac_k + $i * $Shag; $y = $a * pow($x, 4) * (pow($x, 2) - $c) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } } $m = $m + 1; } else { $d = ABS($Xnac_k) < $L_k * $kL4_k / 2 ? $Dmin_k : $Dmax_k; $Y1 = ($d + $htk_k) / 2; list($TochkiSegment["CoordX"][1], $TochkiSegment["CoordY"][1]) = array($Xnac_k, $Y1); $m = 2; list($TochkiSegment["CoordX"][$m], $TochkiSegment["CoordY"][$m]) = array($Xkon, $Y1); } unset($TochkiSegment["CoordX"][0], $TochkiSegment["CoordY"][0]); array_multisort($TochkiSegment["CoordX"], SORT_ASC, SORT_NUMERIC, $TochkiSegment["CoordY"], SORT_ASC, SORT_NUMERIC); $TochkiAllRP = array("Rebro" => array("0" => NULL), "Poper" => array("0" => NULL), "CoordX" => array("0" => NULL), "CoordY" => array("0" => NULL), "CoordZ" => array("0" => NULL)); $xv = $Cyl_k / 8; $gt = 2 * pi() / $Cyl_k; for ($b = 1; $b <= $xv; $b++) { if ($b > 1) { $pred = 2 - $b; $g = ($b - 1) * $gt; $cs = cos($g); $sn = sin($g); $dob = 1; } else { $dob = 0; $pred = 0; } for ($i = 1; $i <= 8; $i++) { $R = ($i - 1) * $xv * (1 + $dob) + 1 + $dob - $pred * $dob; $pred = $R; if ($b > 1) { $mnYZ = intval($i / 2) % 2; if ($mnYZ == 0) { $mnY = $cs; $mnZ = $sn; } else { $mnY = $sn; $mnZ = $cs; } } else { $md2 = $i % 2; $md4 = $i % 4; $mnYZ = $md2 * $md4 % 2 * 10 - intval($md2 * $md4 / 2) * 9; if ($mnYZ == 0) { list($mnY, $mnZ) = array(sqrt(2) / 2, sqrt(2) / 2); } else { $mnY = intval($mnYZ / 10); $mnZ = $mnYZ % 10; } } $md0 = intval($i / 3) - intval($i / 6) - intval($i / 7) + 1; $znY = $md0 - 3 * intval($md0 / 2); $znZ = 2 * intval($i / 5) - 1; $tsg = SizeOf($TochkiSegment["CoordX"]); for ($j = 0; $j < $tsg; $j++) { $X = $TochkiSegment["CoordX"][$j]; $Ytk = $TochkiSegment["CoordY"][$j]; $Y = $znY * $Ytk * $mnY; $Z = $znZ * $Ytk * $mnZ; $Nom = ($R - 1) * $m + $j; list($TochkiAllRP["Rebro"][$Nom], $TochkiAllRP["Poper"][$Nom], $TochkiAllRP["CoordX"][$Nom], $TochkiAllRP["CoordY"][$Nom], $TochkiAllRP["CoordZ"][$Nom]) = array($R, $j + 1, $X, $Y, $Z); } } } unset($TochkiSegment); $tsg = SizeOf($TochkiAllRP["CoordX"]); $TochkiAll = array("Nomer" => array("0" => NULL), "CoordX" => array("0" => NULL), "CoordY" => array("0" => NULL), "CoordZ" => array("0" => NULL)); if ($Orient_k == "H") { for ($i = 0; $i < $tsg; $i++) { list($TochkiAll["Nomer"][$i], $TochkiAll["CoordX"][$i], $TochkiAll["CoordY"][$i], $TochkiAll["CoordZ"][$i]) = array(intval(($TochkiAllRP["Rebro"][$i] - 1) * $m + $TochkiAllRP["Poper"][$i]), $TochkiAllRP["CoordX"][$i], $TochkiAllRP["CoordY"][$i], $TochkiAllRP["CoordZ"][$i] + $Sm_k); } } else { $DS2 = $S_k / 2; for ($i = 0; $i < $tsg; $i++) { list($TochkiAll["Nomer"][$i], $TochkiAll["CoordX"][$i], $TochkiAll["CoordY"][$i], $TochkiAll["CoordZ"][$i]) = array(intval(($TochkiAllRP["Rebro"][$i] - 1) * $m + $TochkiAllRP["Poper"][$i]), -$TochkiAllRP["CoordZ"][$i] + $DS2, $TochkiAllRP["CoordY"][$i], $TochkiAllRP["CoordX"][$i] + $Sm_k); } } unset($TochkiAllRP); $Nzk = "Kolzo" . $Nom_k; $Mrk = "Markirovka" . $Nom_k; $Stroka = Stroka_($Nzk, $Mrk, $Zvet_k, "0", $Ind_k, $TochkiAll); unset($R, $X, $Y, $Z, $Y1, $xv, $gt, $m, $i, $ff, $Shag, $n, $a, $c, $d, $pred, $b, $cs, $sn, $dob, $mny, $mnz, $zny, $znz, $md0, $md2, $md4); unset($TochkiAll); return $Stroka; } goto Y75D0; VDSYX: $txt = print_r($Stroka, true); goto HYYEu; Q8wvA: $Stroka0 = Korpus_($Dmax_, $Dmin_, $L_, $t_, $S_, $Sm, $m_, $v_, $PaB, $fm, $Cyl, $kL1, $kL2, $kL3, $kL4, $rezZvet, $Ornt, $ArrKoef); goto kxZ1g; ztnle: $S_ = $S / $Km; goto Yg62F; WOidL: $ZagolovokGruppa = "#VRML V2.0 utf8
#Created by Visual FoxPro
DEF Gruppa Transform {
children [
"; goto pIe50; vLYo1: $fm = $FF == 0 ? $PaM : $FF; goto Q8wvA; WmX6J: $kL3 = 0.025; goto zKCw9; lhHNt: $gt = 2 * pi() / $Cyl; goto UQCGf; Yg62F: $htk_ = $htk / $Km; goto P5WpB; UQCGf: if ($Ornt == "H") { $h_ = $h_ + $htk_; $Sm = $h_ + $Dmax_ / 2; } else { $Sm = $h_ + $L_ / 2; } goto prdV2; K2yZH: $L_ = $L / $Km; goto cw06e; xMkWE: $Cyl = (int) substr($Kach, 0, 2); goto roFyu; RFw4O: function SplineCoord2_($k, $Tn, $Yn, $Yx, $Y0, &$ArrKoef, &$TochkiSegment) { list($TochkiSegment["CoordX"][1], $TochkiSegment["CoordY"][1]) = array($Tn, $Yn); $x = abs($Tn); $S = $Yn - $Y0; $R = $Yx - $Y0; $D2 = 16 * pow($x, 4) * (pow($R, 2) - $R * $S); $c21 = 2 * pow($x, 2) * ($R + sqrt(pow($R, 2) - $R * $S)) / $S; $c22 = 2 * pow($x, 2) * ($R - sqrt(pow($R, 2) - $R * $S)) / $S; $c2 = max($c21, $c22); $a2 = -4 * $R / pow($c2, 2); $ArrKoef["a"] = $a2; $ArrKoef["c"] = $c2; $x02 = -sqrt($c2 / 2); $x22 = -sqrt($c2 / 6); $y22 = $a2 * pow($x22, 2) * (pow($x22, 2) - $c2) + $Y0; $sec1 = 5 * $k; $Shag = ($x02 - $Tn) / $sec1; $kol = $sec1 - 1; for ($i = 1; $i <= $kol; $i++) { $n = $i + 1; $x = $Tn + $i * $Shag; $y = $a2 * pow($x, 2) * (pow($x, 2) - $c2) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } list($TochkiSegment["CoordX"][$sec1 + 1], $TochkiSegment["CoordY"][$sec1 + 1]) = array($x02, $Yx); $sec2 = 3 * $k; $Shag = ($x22 - $x02) / $sec2; $kol = $sec2 - 1; for ($i = 1; $i <= $kol; $i++) { $n = $sec1 + $i + 1; $x = $x02 + $i * $Shag; $y = $a2 * pow($x, 2) * (pow($x, 2) - $c2) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } list($TochkiSegment["CoordX"][$sec1 + $sec2 + 1], $TochkiSegment["CoordY"][$sec1 + $sec2 + 1]) = array($x22, $y22); $sec3 = 4 * $k; $Shag = (0 - $x22) / $sec3; $kol = $sec3 - 1; for ($i = 1; $i <= $kol; $i++) { $n = $sec1 + $sec2 + $i + 1; $x = $x22 + $i * $Shag; $y = $a2 * pow($x, 2) * (pow($x, 2) - $c2) + $Y0; list($TochkiSegment["CoordX"][$n], $TochkiSegment["CoordY"][$n]) = array($x, $y); } list($TochkiSegment["CoordX"][$sec1 + $sec2 + $sec3 + 1], $TochkiSegment["CoordY"][$sec1 + $sec2 + $sec3 + 1]) = array(0, $Y0); return; } goto i3Bss; HYYEu: function SplineCoord0_($Sdvig, $Ps, $Tn, $Tk, $Yn, $Yk, &$TochkiSegment) { $a = 0.5 * ($Yk - $Yn); $k = 1 / ($Tk - $Tn); $b = 0.5 * ($Tn + $Tk) / ($Tn - $Tk); $c = 0.5 * ($Yk + $Yn); $d = intval($Ps / 2); $X0 = ($Tk + $Tn) / 2; $Y0 = ($Yk + $Yn) / 2; list($TochkiSegment["CoordX"][1 + $Sdvig], $TochkiSegment["CoordY"][1 + $Sdvig]) = array($Tn, $Yn); list($TochkiSegment["CoordX"][$d + 1 + $Sdvig], $TochkiSegment["CoordY"][$d + 1 + $Sdvig]) = array($X0, $Y0); list($TochkiSegment["CoordX"][$Ps + $Sdvig], $TochkiSegment["CoordY"][$Ps + $Sdvig]) = array($Tk, $Yk); $KasMax = $a * $k * pi() * cos(($k * $X0 + $b) * pi()); $KasStep = $KasMax / $d; for ($i = 1; $i <= $d - 1; $i++) { $KasTek = $KasStep * $i; $Xtek1 = (acos($KasTek / ($a * $k * pi())) / pi() - $b) / $k; $Ytek1 = $a * sin(($k * $Xtek1 + $b) * pi()) + $c; $Vdl1 = $i + 1 + $Sdvig; $Xtek2 = 2 * $X0 - $Xtek1; $Ytek2 = 2 * $c - $Ytek1; $Vdl2 = 2 * ($d + 1 + $Sdvig) - $Vdl1; list($TochkiSegment["CoordX"][$Vdl1], $TochkiSegment["CoordY"][$Vdl1]) = array($Xtek1, $Ytek1); list($TochkiSegment["CoordX"][$Vdl2], $TochkiSegment["CoordY"][$Vdl2]) = array($Xtek2, $Ytek2); } return; } goto RFw4O; LlpUu:
© 2023 Quttera Ltd. All rights reserved.