Skip to content
Snippets Groups Projects
Commit 5b393839 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

[pyramid_com] computation of center of mass of pyramids with less divisions ()

Merging branch 'pyramid_com'  into 'main'.

See merge request !1160
parents 86fca6e6 8b347fef
No related branches found
No related tags found
1 merge request!1160computation of center of mass of pyramids with less divisions
Pipeline #81861 passed
...@@ -64,8 +64,8 @@ std::string Pyramid2::validate() const ...@@ -64,8 +64,8 @@ std::string Pyramid2::validate() const
double W = m_width / 2; double W = m_width / 2;
double w = m_width / 2 * (1 - s); double w = m_width / 2 * (1 - s);
double zcom = // center of mass
m_height * (.5 - (r + s) / 3 + r * s / 4) / (1 - (r + s) / 2 + r * s / 3); // center of mass double zcom = m_height * 0.5 * (6 - 4 * (r + s) + 3 * r * s) / (6 - 3 * (r + s) + 2 * r * s);
setPolyhedron(topology, -zcom, setPolyhedron(topology, -zcom,
{// base: {// base:
......
...@@ -55,14 +55,15 @@ std::string Pyramid3::validate() const ...@@ -55,14 +55,15 @@ std::string Pyramid3::validate() const
double a = m_base_edge; double a = m_base_edge;
double as = a / 2; double as = a / 2;
double ac = a / sqrt(3) / 2; double ac = a * (1. / sqrt(3) / 2);
double ah = a / sqrt(3); double ah = a * (1. / sqrt(3));
double b = a * (1 - r); double b = a * (1 - r);
double bs = b / 2; double bs = b / 2;
double bc = b / sqrt(3) / 2; double bc = b * (1. / sqrt(3) / 2);
double bh = b / sqrt(3); double bh = b * (1. / sqrt(3));
double zcom = m_height * (.5 - 2 * r / 3 + r * r / 4) / (1 - r + r * r / 3); // center of mass // center of mass
double zcom = m_height * (1. / 4) * (6 - 8 * r + 3 * r * r) / (3 - 3 * r + r * r);
setPolyhedron(topology, -zcom, setPolyhedron(topology, -zcom,
{// base: {// base:
......
...@@ -58,7 +58,8 @@ std::string Pyramid4::validate() const ...@@ -58,7 +58,8 @@ std::string Pyramid4::validate() const
double a = m_base_edge / 2; double a = m_base_edge / 2;
double b = a * (1 - r); double b = a * (1 - r);
double zcom = m_height * (.5 - 2 * r / 3 + r * r / 4) / (1 - r + r * r / 3); // center of mass // center of mass
double zcom = m_height * (1. / 4) * (6 - 8 * r + 3 * r * r) / (3 - 3 * r + r * r);
setPolyhedron(topology, -zcom, setPolyhedron(topology, -zcom,
{// base: {// base:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment