예제 #1
0
파일: Triangle.cpp 프로젝트: aquach/volt
void Triangle::GenerateStrokes () {
    m_strokes.clear();
    int numStrokes = 50 * (m_transform.scale.x + m_transform.scale.y) / 2;
    for (int i = 0; i < numStrokes; i++) {
        Vector2 pos(Volt::Random::Percent(), Volt::Random::Percent());
        Volt::Color color = ColorAtPoint(pos);
        if (color.Intensity() == 0) {
            i--;
            continue;
        }

        Vector2 gradient = ColorGradientAtPoint(pos).GetPerpendicularRight();

        BrushStroke stroke;
        stroke.transform.position = pos;
        stroke.transform.rotation = gradient.GetAngleDegrees();
        stroke.transform.scale.Set(0.5, 0.5);
        stroke.transform.scale *= Volt::Random::RangeFloat(0.8, 1.3);
        stroke.color = color + Volt::Color::Random() * 0.2;
        m_strokes.push_back(stroke);
    }
}