Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ukierunkowana linia
Forum PHP.pl > Forum > PHP
php programmer
Czy jest jakaś funkcja w GDI (w manualu nic nie znalazłem) typu

  1. <?php
  2. RysujLinie(srodek_x,srodek_y,kąt_nachylenia,długość)
  3. ?>
mike
Poza imageline() nie ma.
Ale nie wiem w czym problem? Przeciez to prosta matematyka.

P.S.
Skąd ta nazwa: "ukierunkowana". Przeciez paramerty które wymieniłeś w prototypie nie mają związku z kierunkiem.
php programmer
Wiem moge sobie użyć trygonometri ,ale wtedy linia będzie miała zmienną długość
będzie chodzić po kwadracie, a nie po okręgu.

Cytat
Skąd ta nazwa: "ukierunkowana". Przeciez paramerty które wymieniłeś w prototypie nie mają związku z kierunkiem.

ukierunowana, bo z parametrem: kąt_nachylenia
mike
Cytat(php programmer @ 2.08.2006, 10:15 ) *
(...) ale wtedy linia będzie miała zmienną długość
będzie chodzić po kwadracie, a nie po okręgu.

Nie wiem czy wiesz, ale trygonometria zna pojęcie okręgu tongue.gif
Nie widzę problemu ze stałą długością.
php programmer
Cytat
Nie wiem czy wiesz, ale trygonometria zna pojęcie okręgu

Poza długością łuku nic mi nie przychodzi do głowy
a mi chodzi o wyliczenie współrzednych (na łuku), zeby własnie
wykorzystać już standardową funkcję rysującą line.

Edit1: *************************************************************

chyba znalazłem

miałem to na pierwszym albo drugim roku

ale w sumie to i tak nie rozwiązuje problemu kąta

Edit2: *************************************************************

Chyba jednak za bardzo się rozpędziłem.

Wystarczy trygonomeria z ósmej klasy
promień r robi za przeciwprostokątna:

  1. <?php
  2. $x = $r * cos($angle);
  3. $y = $r * sin($angle);
  4. ?>


Edit Last:
Troche badziew ale jest
Zegarek

  1. <?php
  2. function Godz($godz,$min){
  3. return (($godz%12-3)+($min/60))*pi()/6;
  4. }
  5.  
  6. function Minut($min){
  7. return ($min%60-15)*pi()/30;
  8. }
  9.  
  10. function ComputeXY($angle,$rr){
  11. global $r;
  12. $array = Array();
  13. $array['x'] = $rr * cos($angle)+$r;
  14. $array['y'] = $rr * sin($angle)+$r;
  15. return $array;
  16. }
  17.  
  18.  
  19. $r = 100;
  20. header("Content-type: image/png");
  21. $im = @imagecreate($r*2, $r*2)
  22.  or die("Cannot Initialize new GD image stream");
  23. $background_color = imagecolorallocate($im, 0, 0, 0);
  24. $text_color  = imagecolorallocate($im, 255, 255, 255);
  25.  
  26.  
  27.  
  28. $xy = ComputeXY(Godz(Date('H'),Date('i')),80);
  29. imageline($im,$r,$r,$xy['x'],$xy['y'],$text_color);
  30. imageline($im,$r+1,$r+1,$xy['x']+1,$xy['y']+1,$text_color);
  31.  
  32.  
  33. $xy = ComputeXY(Minut(Date('i')),100);
  34. imageline($im,$r,$r,$xy['x'],$xy['y'],$text_color);
  35.  
  36.  
  37.  
  38. imagepng($im);
  39. imagedestroy($im);
  40. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.