<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) INRIA
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="en" xml:id="rotate">
    <refnamediv>
        <refname>rotate</refname>
        <refpurpose>rotation of a set of points</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Syntax</title>
        <synopsis>xy1=rotate(xy,[theta,orig])</synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Arguments</title>
        <variablelist>
            <varlistentry>
                <term>xy</term>
                <listitem>
                    <para>matrix of size (2,.).</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>xy1</term>
                <listitem>
                    <para>matrix of size (2,.).</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>theta</term>
                <listitem>
                    <para>real, angle in radians; default value is 0.</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>orig</term>
                <listitem>
                    <para>center of the rotation [xc;yc]; default value is [0;0].</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Description</title>
        <para>
            <literal>rotate</literal> performs a rotation with angle <literal>theta</literal>:
        </para>
        <para>
            <literal>xy1(:,i) = M(theta) *(xy(:,i) - orig) + orig</literal>
        </para>
        <para>
            where <literal>M</literal> stands for the corresponding rotation matrix.
        </para>
    </refsection>
    <refsection>
        <title>Examples</title>
        <programlisting role="example"><![CDATA[
xsetech([0,0,1,1],[-1,-1,1,1])
xy=[(0:0.1:10);sin(0:0.1:10)]/10;
for i=2*%pi*(0:10)/10,
  [xy1]=rotate(xy,i);
  xpoly(xy1(1,:),xy1(2,:),"lines")
end
 ]]></programlisting>
        <scilab:image>
            xsetech([0,0,1,1],[-1,-1,1,1])
            xy=[(0:0.1:10);sin(0:0.1:10)]/10;
            for i=2*%pi*(0:10)/10,
            [xy1]=rotate(xy,i);
            xpoly(xy1(1,:),xy1(2,:),"lines")
            end
        </scilab:image>

    </refsection>
</refentry>
