рд╕рд┐рдВрдкрд▓реЗрдХреНрд╕ рд╕рд┐рдпрд░рдкрд┐рдиреНрд╕реНрдХреА



рдпрд╣ рд▓реЗрдЦ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдмрд╣реБрдЖрдпрд╛рдореА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдореВрд▓ рдЧрдгрд┐рддреАрдп рдШрдЯрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрд░рдкрд┐рдиреНрд╕реНрдХреА рд╕рд┐рдВрдкреНрд▓реЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд▓реЗрдЦ рдЬрдЯрд┐рд▓ рдмрд╣реБрдЖрдпрд╛рдореА рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг, рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ, рдкреЗрд╢ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред
рд╡рд╣рд╛рдБ рднреА рдЪрд┐рддреНрд░, рд╡реАрдбрд┐рдпреЛ, рд╕реНрд░реЛрдд рд╣реИрдВ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдкрдврд╝реЗрдВ, рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░реЗрдВред

Sierpinski рддреНрд░рд┐рдХреЛрдг рдХреНрдпрд╛ рд╣реИ, рдФрд░ Sierpinski рдкрд┐рд░рд╛рдорд┐рдб рдХреНрдпрд╛ рд╣реИ , рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди Sierpinski рд╕рд┐рдореНрдкреНрд▓реЗрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ? рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рдХреА рдкрд░ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рд┐рдореНрдкреНрд▓реЗрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ - рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рд╕рд┐рдореНрдкреНрд▓реЗрдХреНрд╕ рдПрдХ рдПрди-рдбрд╛рдпрдореЗрдВрд╢рдирд▓ рдЯреЗрдЯреНрд░рд╛рд╣реЗрдбреНрд░реЙрди рд╣реИ ( рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ)ред рдЦреИрд░, Sierpinski рд╕рд┐рдВрдкреНрд▓реЗрдХреНрд╕ рдПрдХ рддрд░рд╣ рдХрд╛ рдлреНрд░реИрдХреНрдЯрд▓ рд╣реИ, рдЬрд┐рд╕реЗ рддреНрд░рд┐рдХреЛрдг рдФрд░ Sierpinski tetrahedron рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рд╕рдорднреБрдЬ рд╕рд┐рдВрдкреНрд▓реЗрдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


рдЗрд╕ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ (рдореЗрд░реЗ рдЕрдиреБрдорд╛рди рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдореЗрдВ рдпрд╣ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд n-1 рдЖрдпрд╛рдореА рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдФрд░ рдХреЗрдВрджреНрд░ рд╕реЗ рд╕рдорд╛рди рджреВрд░реА рдкрд░ n рдЕрдВрдХ рд╣реИред рдЖрдЧреЗ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдРрд╕реЗ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ?

рдмреЗрд╢рдХ, рд╣рдо рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ n> = 3, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХреЗрд╡рд▓ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ nth рдмрд┐рдВрджреБ рдХреЛ рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдордмрд╛рд╣реБ рддреНрд░рд┐рднреБрдЬ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


рдПрдХ рдирдпрд╛ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирдП рдЖрдпрд╛рдо (рдбрдмреНрд▓реНрдпреВ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдк рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реБрдП рдХрд┐ рдмрд┐рдВрджреБ рдЕрдиреНрдп рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд╣рдо рдЗрд╕ рдмрд┐рдВрджреБ Pn рдХреЗ рд▓рд┐рдП W рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде q1 рдФрд░ W рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП -q2 рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдмрд┐рдВрджреБ Pn рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдЕрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╢реВрдиреНрдп рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рдХрд┐ рд╕рднреА рдмрд┐рдВрджреБ рдЬреЛ рдереЗ - рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдФрд░ рдХреЗрдВрджреНрд░ рд╕реЗ рд╕рдорд╛рди рджреВрд░реА рдкрд░ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдирдпрд╛ рдмрд┐рдВрджреБ рдЕрдиреНрдп рд╕рднреА рд╕реЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдРрд╕реЗ q1, q2 рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣реА рд░рд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рднреА рдмрд┐рдВрджреБ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдФрд░ рдХреЗрдВрджреНрд░ рд╕реЗ рд╕рдорд╛рди рд╣реЛрдВред


рдПрд▓ - рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА - рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдФрд░ рддреНрд░рд┐рдХреЛрдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред
d - рдХреЗрдВрджреНрд░ рд╕реЗ рдмрд┐рдВрджреБрдУрдВ рдХреА рджреВрд░реА - рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдПрдХ рдирдпрд╛ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рдкрд╣рд▓рд╛ рд╕рдореАрдХрд░рдг рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдЕрдВрдХреЛрдВ рд╕реЗ рдирдП рддрдХ рдХреА рджреВрд░реА рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рджреВрд╕рд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЗрдВрджреНрд░ рдХреА рджреВрд░рд┐рдпрд╛рдВ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рджрд░рдЕрд╕рд▓, рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рдПрдХ рд╕рдорднреБрдЬ рд╕рд┐рдореНрдкрд▓реЗрдХреНрд╕ рдорд┐рд▓рддрд╛ рд╣реИред

рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ:
double c = r * sqrt(3) / 2; double l = c * 2; //distance between points points[0][0] = + 0; points[0][1] = + r; //first point points[1][0] = + c; points[1][1] = - r / 2; //second point points[2][0] = - c; points[2][1] = - r / 2; //3th point for (int i = 3; i <= dimensionalCount; i++) { double d = points[0].distanceToCenter(); double q2 = (l * l - 2 * d * d) / (2 * sqrt(l * l - d * d)); double q1 = sqrt(d * d + q2 * q2); for (int k = 0; k < i; k++) { points[k][i-1] = -q2; //set i-th dimension for all created points points[i][k] = 0; //set all calculated dimension for new point } points[i][i-1] = q1; } 

рднрдЧреНрди


рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рддреНрд░рд┐рдХреЛрдг (n = 2) рдФрд░ Sierpinski tetrahedron (n = 3) рдЖрдзрд╛рд░ рдЖрдХреГрддрд┐ рд╕реЗ n + 1 рдХреЗ рд╕рд╛рде рдЖрдзрд╛рд░ рдЖрдХреГрддрд┐ рдХреЛ рдмрджрд▓рдХрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗред рдкреНрд░рддреНрдпреЗрдХ рдирдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ, рдЖрдзрд╛рд░ рдЖрдХреГрддрд┐ рдХреЗ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реЗрд╖ рдмрд┐рдВрджреБ рдЦрдВрдбреЛрдВ рдХреЗ рджреНрд░рд╡реНрдпрдорд╛рди рдХреЗ рдХреЗрдВрджреНрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдпрд╣ рдмрд┐рдВрджреБ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рддреЛ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
 void rec(QVector<Simplex>& storage, const Simplex& current, int recursionDepth) { if (recursionDepth == maxRecursionDepth) storage.append(current); else { for (int i = 0; i <= n; i++) { Simplex newTriangle(current.dimensionsCount()); for (int k = 0; k <= n; k++) { if (i == k) newTriangle[k] = current[i]; else newTriangle[k] = (current[i] + current[k]) / 2.0; } rec(storage, newTriangle, recursionDepth + 1); } } } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдЖрдпрд╛рдо рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдФрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ 2 рдбреА рдФрд░ 3 рдбреА рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:





рдШреБрдорд╛рдПрдБ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди


рдЗрд╕реЗ рдШреБрдорд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЪрддреБрд░реНрдзрд╛рддреБрдХ, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди), рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╕ рд╕рдВрднрд╡ рд╣реИ ... рд╣рдо рд╕рдм рдХреБрдЫ рдмрд╕ рдХрд░реЗрдВрдЧреЗ, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдШреБрдорд╛рдПрдВрдЧреЗред 2 рдбреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреБрдорд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, 3 рдбреА рдХреЗ рд▓рд┐рдП - рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕, рдПрдирдбреА рдХреЗ рд▓рд┐рдП - (рдПрди -2) рдХреЗ рдЖрд╕рдкрд╛рд╕-рдЖрдпрд╛рдореА рд╕реНрдерд╛рдиред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд░реЛрдЯреЗрд╢рди рд╕реВрддреНрд░ рдХреА рдЧрдгрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:


рдЦреИрд░, рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИ:
  for (int i = 0; i < coordinates.count(); i++) for (int k = i + 1; k < coordinates.count(); k++) { ratio = sqrt(2 + i * coordinates.count() + k); p1 = temp[i] * cos(angle * ratio) - temp[k] * sin(angle * ratio); p2 = temp[k] * cos(angle * ratio) + temp[i] * sin(angle * ratio); temp[i] = p1; temp[k] = p2; } 

рдЬрд╣рд╛рдВ рдЕрдиреБрдкрд╛рдд рдПрдХ рдЧреБрдгрд╛рдВрдХ рд╣реИ, рддрд╛рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд░реЛрдЯреЗрд╢рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрддрд┐ рдкрд░ рд╣реЛ, рдЕрдзрд┐рдорд╛рдирддрдГ рдЫреЛрд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ред рдЕрд╕реНрдерд╛рдпреА [i] - ith рд╡рд░реНрддрдорд╛рди рдмрд┐рдВрджреБ рдХрд╛ рд╕рдордиреНрд╡рдпред

рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдмрд╣реБрдЖрдпрд╛рдореА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рдХреНрд╖рдг рд╣реИред рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ:
1. рдмрд╣реБрдЖрдпрд╛рдореА рдЬреНрдпрд╛рдорд┐рддреАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
2. рднреМрддрд┐рдХреА рдХрд╛ рдкреНрд░рдХрд╛рд╢рд╡рд┐рдЬреНрдЮрд╛рди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреБрдк рд╣реИ (рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ)ред
3. рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рд╣рд░ рдХреЛрдИ рддрд╕реНрд╡реАрд░ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕рд╣реА рдХреНрдпрд╛ рд╣реИред

рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдзрд┐ - рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рд▓реЗрдВрдЧреЗред рд╣рдо (n-1) рд╕реНрдерд╛рди рдкрд░ n-рдЖрдпрд╛рдореА рдмрд┐рдВрджреБ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ ... рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд░ рдмрд╛рд░ N рдХреЛ рдХрдо рдХрд░рдиреЗ рдкрд░, рд╣рдо рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрддреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдВрджреБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ-рдЖрдпрд╛рдореА рдпрд╛ рддреАрди-рдЖрдпрд╛рдореА рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ 2 рдбреА рд╕реЗ 1 рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЪрд▓реЛ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рд╕реВрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред


рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 2 рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рд░ рдлреЛрдХрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк 1 рд╕рдордиреНрд╡рдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╕реВрддреНрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЬреИрд╕реЗ рдХреЛрдб:
  for (int i = coordinates.count() - 1; i > 3; i--) for (int k = 0; k < i; k++) temp[k] *= focus / (focus + temp[i]); 

рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд╣реА рд╣реИ? рдЖрдо рддреМрд░ рдкрд░ рд╕рд╣реА рдирд╣реАрдВ, рдПрдХ рдмрд╛рд░ рдирд╣реАрдВ, рдереЛрдбрд╝рд╛ рд╕рд╛ рдирд╣реАрдВ! рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЬреЛ рд╣реИ, рдЙрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдПрдХ рдЯреЗрд╕реНрд╕реЗрдХреНрдЯ рд╣реИ :



рдкреНрд░рддрд┐рдкрд╛рджрди


QPainter рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдорд╛рдирдХ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рд░реЛрд╢рдиреА рдХреЗ, рддреНрд░рд┐рдХреЛрдг рдХреЛ рднрд░рдиреЗ рдХреЗ рдЖрджрд┐ред рдореЗрд░реЗ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реИ, рдФрд░ рдЬрд╣рд╛рдВ рднреА Qt рд╣реИ (рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕, рдореИрдХ рдУрдПрд╕ ...) рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛрдб рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
  QPoint center(this->width() / 2, this->height() / 2); foreach(const Simplex& simplex, simplexes) for (int i = 0; i < simplex.dimensionsCount() + 1; i++) for (int k = i+1; k < simplex.dimensionsCount() + 1; k++) p.drawLine(simplex[i].to2D(focus, angle) + center, simplex[k].to2D(focus, angle) + center); 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рднреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ ... рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕реБрдВрджрд░, рд╕рд╣реА рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдУрдкрдирдЬреАрдПрд▓ , рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХреЛ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рджреБрд░реНрднрд╛рдЧреНрдп рд╣реИ: рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреА рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдЗрди рджреЛрдиреЛрдВ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рджреВрд░ (z -> рдЕрдзрд┐рдХрддрдо) рд╕реЗ рд▓реЗрдХрд░ (z -> рдорд┐рдирдЯ) рддрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо, рддреНрд░рд┐рдХреЛрдг рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд▓рдЧрднрдЧ 6000 рд╣реИрдВред рдЦреИрд░, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рддреНрд░рд┐рдХреЛрдг рдХрд░реАрдм рд╣реИ рдФрд░ рдХреМрди рд╕рд╛ рдЖрдЧреЗ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдо рдмрд╣реБрдЖрдпрд╛рдореА рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕реЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рддреНрд░рд┐рдХреЛрдг рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдХрд╛рдЯрдиреЗ рдФрд░ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ ...
рдореИрдВрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд░реЗ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдЬреЛ рдбреЙрдХреНрдЯрд░ рдиреЗ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХ рдЖрдкрдХреЛ рдЕрдзрд┐рдХрддрдо рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рддрд╕реНрд╡реАрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рдФрд░ рдЗрд╕рдХреА рдЧрддрд┐ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рдореА рд╣реИред рд▓реЗрдХрд┐рди, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ POV-Ray рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдерд╛ рдХрд┐ рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА GUI рдХреЗред
рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрд╛, рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрд╡рд╢реНрдпрдХ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рднрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП .pov рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рд╣реИред рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рддреНрд░рд┐рдХреЛрдг рдФрд░ рдлреНрд░реЗрдо рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
 #declare ppp = array[<<!!--count of points--!!>>] { <<!!--Main Array of points--!!>> }; #declare i = 0; #while(i < <<!!--count of points--!!>>) #if (vlength(ppp[i] - ppp[i+1])!=0) cylinder{ppp[i], ppp[i+1], 0.2 texture {pigment{color Gray}} } #end #if (vlength(ppp[i] - ppp[i+2])!=0) cylinder{ppp[i], ppp[i+2], 0.2 texture {pigment{color Gray}} } #end #if (vlength(ppp[i+1] - ppp[i+2])!=0) cylinder{ppp[i+1], ppp[i+2], 0.2 texture {pigment{color Gray}} } #end polygon {4 ppp[i], ppp[i+1], ppp[i+2] ,ppp[i] texture { Surface_Texture }} #declare i=i+3; #end 

рджрд░рдЕрд╕рд▓, рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, 1000 рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЛрдбрд╝ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рдирд╕реЗ рдмрд╛рдж рдореЗрдВ рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛:


рд╕реНрд░реЛрдд рдХреЛрдб

рд▓реЗрдЦ рднрд╛рд░реА рдзрд╛рддреБ рдЯреАрдо рдлрд╛рдЗрдЯ рд╡рд┐рдж рдлреЗрдЯ рдХреА рд▓рдбрд╝рдХрд┐рдпреЛрдВ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИред

Source: https://habr.com/ru/post/In136696/


All Articles