1 // Boost.Geometry
2 // QuickBook Example
3
4 // Copyright (c) 2020, Aditya Mohan
5
6 // Use, modification and distribution is subject to the Boost Software License,
7 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
9
10 //[dot_product
11 //` Calculate the dot product of two points
12
13 #include <iostream>
14
15 #include <boost/geometry.hpp>
16 #include <boost/geometry/arithmetic/dot_product.hpp>
17 #include <boost/geometry/geometries/adapted/boost_array.hpp>
18
19 namespace bg = boost::geometry; /*< Convenient namespace alias >*/
20
BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)21 BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)
22
23
24 int main()
25 {
26 double dp1,dp2,dp3,dp4;
27 bg::model::point<double, 3, bg::cs::cartesian> point1(1.0, 2.0, 3.0);
28 bg::model::point<double, 3, bg::cs::cartesian> point2(4.0, 5.0, 6.0);
29
30 //Example 1
31 dp1 = bg::dot_product(point1, point2);
32
33 std::cout << "Dot Product 1: "<< dp1 << std::endl;
34
35 bg::model::point<double, 2, bg::cs::cartesian> point3(3.0, 2.0);
36 bg::model::point<double, 2, bg::cs::cartesian> point4(4.0, 7.0);
37
38 //Example 2
39 dp2 = bg::dot_product(point3, point4);
40
41 std::cout << "Dot Product 2: "<< dp2 << std::endl;
42
43 boost::array<double, 2> a = {1, 2};
44 boost::array<double, 2> b = {2, 3};
45
46 //Example 3
47 dp3 = bg::dot_product(a, b);
48
49 std::cout << "Dot Product 3: "<< dp3 << std::endl;
50
51 return 0;
52
53 }
54
55 //]
56
57 //[dot_product_output
58 /*`
59 Output:
60 [pre
61 Dot Product 1: 32
62 Dot Product 2: 26
63 Dot Product 3: 8
64 ]
65 */
66 //]
67