Вход Регистрация
Файл: vendor/intervention/image/src/Geometry/Point.php
Строк: 107
<?php

declare(strict_types=1);

namespace 
InterventionImageGeometry;

use 
InterventionImageInterfacesPointInterface;

class 
Point implements PointInterface
{
    
/**
     * Create new point instance
     *
     * @param int $x
     * @param int $y
     * @return void
     */
    
public function __construct(
        protected 
int $x 0,
        protected 
int $y 0
    
) {
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::setX()
     */
    
public function setX(int $x): self
    
{
        
$this->$x;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::x()
     */
    
public function x(): int
    
{
        return 
$this->x;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::setY()
     */
    
public function setY(int $y): self
    
{
        
$this->$y;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::y()
     */
    
public function y(): int
    
{
        return 
$this->y;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::moveX()
     */
    
public function moveX(int $value): self
    
{
        
$this->+= $value;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::moveY()
     */
    
public function moveY(int $value): self
    
{
        
$this->+= $value;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::move()
     */
    
public function move(int $xint $y): self
    
{
        return 
$this->moveX($x)->moveY($y);
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::setPosition()
     */
    
public function setPosition(int $xint $y): self
    
{
        
$this->setX($x);
        
$this->setY($y);

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     *
     * @see PointInterface::rotate()
     */
    
public function rotate(float $anglePointInterface $pivot): self
    
{
        
$sin round(sin(deg2rad($angle)), 6);
        
$cos round(cos(deg2rad($angle)), 6);

        return 
$this->setPosition(
            
intval($cos * ($this->x() - $pivot->x()) - $sin * ($this->y() - $pivot->y()) + $pivot->x()),
            
intval($sin * ($this->x() - $pivot->x()) + $cos * ($this->y() - $pivot->y()) + $pivot->y())
        );
    }
}
Онлайн: 0
Реклама