Learn R Programming

volesti (version 1.0.0)

rand_rotate: Apply a random rotation to a convex polytope (H-polytope, V-polytope or a zonotope)

Description

Given a convex H or V polytope or a zonotope as input this function applies a random rotation.

Usage

rand_rotate(P)

Arguments

P

A convex polytope. It is an object from class (a) Hpolytope or (b) Vpolytope or (c) Zonotope.

Value

A list that contains the rotated polytope and the matrix of the linear transformation.

Details

Let \(P\) be the given polytope and \(Q\) the rotated one and \(T\) be the matrix of the linear transformation.

  • If \(P\) is in H-representation and \(A\) is the matrix that contains the normal vectors of the facets of \(Q\) then \(AT\) contains the normal vactors of the facets of \(P\).

  • If \(P\) is in V-representation and \(V\) is the matrix that contains column-wise the vertices of \(Q\) then \(T^TV\) contains the vertices of \(P\).

  • If \(P\) is a zonotope and \(G\) is the matrix that contains column-wise the generators of \(Q\) then \(T^TG\) contains the generators of \(P\).

  • If \(M\) is a matrix that contains column-wise points in \(Q\) then \(T^TM\) contains points in \(P\).

Examples

Run this code
# NOT RUN {
# rotate a H-polytope (2d unit simplex)
P = GenSimplex(2,'H')
poly_matrix_list = rand_rotate(P)

# rotate a V-polytope (3d cube)
P = GenCube(3, 'V')
poly_matrix_list = rand_rotate(P)

# rotate a 5-dimensional zonotope defined by the Minkowski sum of 15 segments
Z = GenZonotope(3,6)
poly_matrix_list = rand_rotate(Z)
# }

Run the code above in your browser using DataLab