Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

transform (with strategy)

Boost , Chapter 1. Geometry , transform

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Преобразуется из одной геометрии в другую с помощью указанной стратегии.

Synopsis

template<typename Geometry1, typename Geometry2, typename Strategy>
bool transform(Geometry1 const & geometry1, Geometry2 & geometry2, Strategy const & strategy)

Parameters

Тип

Концепция

Имя

Описание

Геометрия1 const &

Любой тип, выполняющий концепцию геометрии

Геометрия1

Модель указанного понятия

Геометрия2 &

Любой тип, выполняющий концепцию геометрии

Геометрия2

Модель указанного понятия

Стратегия const &

стратегия

стратегия

Стратегия, используемая для преобразования

Returns

Если бы трансформацию можно было осуществить

Header

Или

#include <boost/geometry.hpp>

Или

#include <boost/geometry/algorithms/transform.hpp>

Complexity

линейный

Example

Показывает, как точки можно масштабировать, переводить или поворачивать

#include <iostream>
#include <boost/geometry.hpp>
int main()
{
    namespace trans = boost::geometry::strategy::transform;
    using boost::geometry::dsv;
    typedef boost::geometry::model::point<double, 2, boost::geometry::cs::cartesian> point_type;
    point_type p1(1.0, 1.0);
    // Translate over (1.5, 1.5)
    point_type p2;
    trans::translate_transformer<double, 2, 2> translate(1.5, 1.5);
    boost::geometry::transform(p1, p2, translate);
    // Scale with factor 3.0
    point_type p3;
    trans::scale_transformer<double, 2, 2> scale(3.0);
    boost::geometry::transform(p1, p3, scale);
    // Rotate with respect to the origin (0,0) over 90 degrees (clockwise)
    point_type p4;
    trans::rotate_transformer<boost::geometry::degree, double, 2, 2> rotate(90.0);
    boost::geometry::transform(p1, p4, rotate);
    std::cout
        << "p1: " << dsv(p1) << std::endl
        << "p2: " << dsv(p2) << std::endl
        << "p3: " << dsv(p3) << std::endl
        << "p4: " << dsv(p4) << std::endl;
    return 0;
}

Результат:

p1: (1, 1)
p2: (2.5, 2.5)
p3: (3, 3)
p4: (1, -1)

PrevUpHomeNext

Статья transform (with strategy) раздела Chapter 1. Geometry transform может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: transform ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 09:23:26/0.006030797958374/0