本文整理汇总了C++中std::vector::editarColor方法的典型用法代码示例。如果您正苦于以下问题:C++ vector::editarColor方法的具体用法?C++ vector::editarColor怎么用?C++ vector::editarColor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::vector
的用法示例。
在下文中一共展示了vector::editarColor方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: datosRecta
void datosRecta(std::vector<Object>::iterator it)
{
using namespace ImGui;
Text("Vector direccional: ");
SameLine();
vI = it->vertices[0] - it->vertices[6];
vJ = it->vertices[1] - it->vertices[7];
vK = it->vertices[2] - it->vertices[8];
while ((int)vI % 2 == 0 && (int)vJ % 2 == 0 && (int)vK % 2 == 0)
{
vI /= 2.0f;
vJ /= 2.0f;
vK /= 2.0f;
}
while ((int)vI % 3 == 0 && (int)vJ % 3 == 0 && (int)vK % 3 == 0)
{
vI /= 3.0f;
vJ /= 3.0f;
vK /= 3.0f;
}
while ((int)vI % 5 == 0 && (int)vJ % 5 == 0 && (int)vK % 5 == 0)
{
vI /= 5.0f;
vJ /= 5.0f;
vK /= 5.0f;
}
while ((int)vI % 7 == 0 && (int)vJ % 7 == 0 && (int)vK % 7 == 0)
{
vI /= 7.0f;
vJ /= 7.0f;
vK /= 7.0f;
}
cad = "" + std::to_string(vI) + "i";
if (vJ < 0)
cad += std::to_string(vJ) + "j";
else
cad += " + " + std::to_string(vJ) + "j";
if (vK < 0)
cad += std::to_string(vK) + "k";
else
cad += " + " + std::to_string(vK) + "k";
Text(cad.c_str());
xString = "X - (" + std::to_string(it->puntoRecta.x) + ") = t(" + std::to_string(vI).c_str() + ")";
yString = "Y - (" + std::to_string(it->puntoRecta.y) + ") = t(" + std::to_string(vJ).c_str() + ")";
zString = "Z - (" + std::to_string(it->puntoRecta.z) + ") = t(" + std::to_string(vK).c_str() + ")";
Text("Ecuacion parametrica: ");
Text(xString.c_str());
Text(yString.c_str());
Text(zString.c_str());
cad = "(X - (" + std::to_string(it->puntoRecta.x) + ")i + (Y - (" + std::to_string(it->puntoRecta.y) + ")j + (Z - (" + std::to_string(it->puntoRecta.z) + ")j) = t(" + cad + ")";
Text("Ecuacion Vectorial :");
Text(cad.c_str());
Text("Color:");
colAux[0] = it->color.x;
colAux[1] = it->color.y;
colAux[2] = it->color.z;
if (ColorEdit3("Color del Objeto", colAux, 1))
{
it->color.x = colAux[0];
it->color.y = colAux[1];
it->color.z = colAux[2];
it->editarColor();
}
if (Button("Eliminar objeto"))
it->eliminado = true;
}
示例2: datosPiramide
void datosPiramide(std::vector<Object>::iterator it)
{
using namespace ImGui;
Text("Longitud de cada lado de la base: ");
SameLine();
Text(std::to_string(magnitud(glm::vec3(it->vertices[0],it->vertices[1],it->vertices[2]), glm::vec3(it->vertices[6], it->vertices[7], it->vertices[8]))).c_str());
cont = 0;
for (int i = 0; i < it->vertices.size(); i += 6)
{
cad = let[cont] + " = (" + std::to_string(it->vertices[i]) + ", " + std::to_string(it->vertices[i + 1]) + ", " + std::to_string(it->vertices[i + 2]) + ")";
Text(cad.c_str());
cont++;
}
Text("Color:");
colAux[0] = it->color.x;
colAux[1] = it->color.y;
colAux[2] = it->color.z;
if (ColorEdit3("Color del Objeto", colAux, 1))
{
it->color.x = colAux[0];
it->color.y = colAux[1];
it->color.z = colAux[2];
it->editarColor();
}
Separator();
Text("Escalacion en X:");
SameLine();
Text(std::to_string(it->ex).c_str());
Text("Escalacion en Y:");
SameLine();
Text(std::to_string(it->ey).c_str());
Text("Escalacion en Z:");
SameLine();
Text(std::to_string(it->ez).c_str());
if (SliderFloat("Escalacion en X", &it->ex, 0.01f, 10.0f))
it->update = true; //si se movio alguno de estos valores, marcar que se debe actualizar
if (SliderFloat("Escalacion en Y", &it->ey, 0.01f, 10.0f))
it->update = true;
if (SliderFloat("Escalacion en Z", &it->ez, 0.01f, 10.0f))
it->update = true;
Separator();
Text("Traslacion en X:");
SameLine();
Text(std::to_string(it->tx).c_str());
Text("Traslacion en Y:");
SameLine();
Text(std::to_string(it->ty).c_str());
Text("Traslacion en Z:");
SameLine();
Text(std::to_string(it->tz).c_str());
if (SliderFloat("Traslacion en X", &it->tx, -50.0f, 50.0f)) //si se movio alguno de estos valores, marcar que se debe actualizar
it->update = true;
if (SliderFloat("Traslacion en Y", &it->ty, -50.0f, 50.0f))
it->update = true;
if (SliderFloat("Traslacion en Z", &it->tz, -50.0f, 50.0f))
it->update = true;
Separator();
Text("Angulo de Rotacion X: ");
SameLine();
Text(std::to_string(it->anguloRotacionX).c_str());
Text("Angulo de Rotacion Y: ");
SameLine();
Text(std::to_string(it->anguloRotacionY).c_str());
Text("Angulo de Rotacion Z: ");
SameLine();
Text(std::to_string(it->anguloRotacionZ).c_str());
if (SliderAngle("Rotar respecto a X", &it->anguloRotacionX)) //si se movio alguno de estos valores, marcar que se debe actualizar
it->update = true;
if (SliderAngle("Rotar respecto a Y", &it->anguloRotacionY))
it->update = true;
if (SliderAngle("Rotar respecto a Z", &it->anguloRotacionZ))
it->update = true;
if (it->update)
{ //para evitar desperdicio de recursos, solo recalcular los vertices si hubo un cambio
it->update = false;
it->transformar();
}
if (Button("Eliminar objeto"))
it->eliminado = true;
}