<?php class Z{ function Z($x = "", $y = "", $kartezyen = 0, $radyan = 0 ){ if( $radyan ){ $this->radyan = $radyan; } list( $this->x, $this->y ) = $this->ayir(func_get_args()); } function ayarla($radyan = 0){ $this->radyan = $radyan; return $this->radyan; } function x(){ return $this->x; } function y(){ return $this->y; } function mod(){ return hypot( $this->x, $this->y ); } function arguman(){ if( $this->radyan ){ return rad2deg( atan( $this->y / $this->x ) ); } else{ return atan( $this->y / $this->x ); } } function ekle(){ list( $x, $y ) = $this->ayir(func_get_args()); $this->x+= $x; $this->y+= $y; } function alt(){ list( $x, $y ) = $this->ayir(func_get_args()); $this->x-= $x; $this->y-= $y; } function cok(){ list( $x, $y ) = $this->ayir(func_get_args()); list( $mod, $arg ) = $this->polar( $x, $y ); list( $this->x, $this->y ) = $this->kartezyen( $this->mod()*$mod, $this->arguman()+$arg ); } function bol(){ list( $x, $y ) = $this->ayir(func_get_args()); list( $mod, $arg ) = $this->polar( $x, $y ); list( $this->x, $this->y ) = $this->kartezyen( $this->mod()/$mod, $this->arguman()-$arg ); } function ayir( $dizi ){ list ($x, $y, $kartezyen, $radyan ) = $dizi; if( $x ){ if( $y ){ if( $kartezyen == 1 ){ if( stristr( $y, "d" ) || ( ($radyan == 1) && (!stristr( $y, "d" )) ) ){ $y = deg2rad( $y ); } list( $x, $y ) = $this->kartezyen( $x, $y ); } else{ $x = $x; $y = $y; } } else{ list( $x, $y ) = $this->ayir_no( $x ); } } return array( @$x, @$y ); } function ayir_no($veri){ $veri = preg_replace("/\s*/","",$veri); if( preg_match("/(?i)[^erd\-+ij.,0-9]+/", $veri) ){ return -1; } else{ if( stristr( $veri, "e" ) ){ preg_match("/(?i)([0-9]+)e-[ij]?([0-9rd]+)[ij]?/", $veri, $dizi); if( sizeof( $dizi ) ){ if( veriiveri( $dizi[2], "d" ) ){ $dizi[2] = deg2rad( $dizi[2] ); } list( $re, $y ) = $this->kartezyen( $dizi[1], $dizi[2] ); } }else{ preg_match_all( "/(?i)([\-+]?[0-9.,ij]+)/", $veri, $dizi, PREG_SET_ORDER ); if( sizeof( $dizi ) ){ foreach( $dizi as $sayi ){ if( preg_match( "/(?i)[ij]/", $sayi[1] ) ){ $y += $sayi[1]; }else{ $re += $sayi[1]; } } } } return array($re, $y); } } function kartezyen( $mod, $a ){ return array( ( $mod*cos($a) ), ( $mod*sin($a) ) ); } function polar( $re, $y ){ return array( hypot( $re, $y ) , atan( ($y/$re) ) ); } } print_r(new Z($x = "5", $y = "6", $kartezyen = 0, $radyan = 0 )); echo "<br>"; print_r(new Z($x = "5", $y = "6", $kartezyen = 0, $radyan = 1 )); echo "<br>"; print_r(new Z($x = "5", $y = "6", $kartezyen = 1, $radyan = 0 )); echo "<br>"; print_r(new Z($x = "5", $y = "6", $kartezyen = 1, $radyan = 1 )); ?>
Çıktısı
Z Object ( [y] => 6 [x] => 5 ) Z Object ( [radyan] => 1 [y] => 6 [x] => 5 ) Z Object ( [y] => -1.3970774909946 [x] => 4.8008514332518 ) Z Object ( [radyan] => 1 [y] => 0.52264231633827 [x] => 4.9726094768414 )