Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] mapa - rysowanie ścieżek, mapa strony klanowej
darkpytong
post 8.01.2009, 09:18:57
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.01.2009

Ostrzeżenie: (0%)
-----


Chciałbym stworzyć w php mapkę z zaznaczonymi na niej lokacjami, które będą połączone ścieżkami. Zastanawiam się, czy może macie pomysł na wykonanie owych ścieżek. W sumie najbardziej zależy mi na wyglądzie samych połączeń- żeby to były jakieś ładne linie poprowadzone łukami; byle nie proste albo nienaturalnie powykrzywiane. 


Chcę, aby ścieżki były automatycznie nanoszone w ramach zmian w samej mapie. Tak, aby nawet w wypadku przemieszczania się punktów ścieżka obierała trasę uwzględniając to przesunięcie. Może coś w rodzaju dynamicznie generowanego pliku graficznego? 


Chciałbym, żeby efekt końcowy prezentował się podobnie jak na mapie świata z gry Final Fantasy Tactics: http://www.ffshrine.org/fft/world_map.jpg


Mam nadzieję, że dobrze nakreśliłem Wam moją ideę. Za ewentualną pomoc z góry dziękuję i na wszelki wypadek zaznaczam raz jeszcze, że oczekuję pomysłów a nie gotowych rozwiązań w postaci kodu, wolę się sam pomęczyć  smile.gif

Ten post edytował darkpytong 8.01.2009, 09:25:28
Go to the top of the page
+Quote Post
kyku
post 8.01.2009, 13:13:05
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 8
Dołączył: 21.11.2008

Ostrzeżenie: (0%)
-----


cos takiego mozesz uzyskac za pomoca biblioteki GD smile.gif

ew. paint tongue.gif


--------------------
eArena.pl - hosting serwerów gier multiplayer
Go to the top of the page
+Quote Post
darkpytong
post 13.01.2009, 14:36:42
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.01.2009

Ostrzeżenie: (0%)
-----


Czy naprawdę poza bibliotekami GD nie ma jakiegoś sposobu? Nie sądziłem, że może to być aż taki problem  blinksmiley.gif
Go to the top of the page
+Quote Post
pest
post 13.01.2009, 15:31:34
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Może dałoby się coś wykombinować z rysunkiem wektorowym .svg nakładanym na mapę, albo w całości tworzeniu mapy w .svg - tylko w najprostszych przypadkach.

W każdym razie ja bym radził zainteresować się tematem formatu .svg i z nim kombinować.
Go to the top of the page
+Quote Post
TAMLYN
post 13.01.2009, 21:10:22
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 6.01.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Ale z tego co wiem, to IE nie obsługuje svg smile.gif Czy już może jest inaczej?


--------------------
Wróciłem po długiej przerwie... Bogatszy w wiedzę.
Go to the top of the page
+Quote Post
erix
post 13.01.2009, 21:46:05
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Z tego, co mi wiadomo, to przy zainstalowanej wtyczce obsługuje. Można jeszcze rysować po obiekcie <canvas />, a dla IE - VRML.

Podejrzewam, że są jakieś frameworki unifikujące.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TAMLYN
post 13.01.2009, 23:06:00
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 6.01.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Hmm... Tylko kto Ci wtyczkę zainstaluje ze zwykłych userów smile.gif Będą obawiać się jakiegoś wirusa pewnie czy cuś winksmiley.jpg

A nie da się tego jednak na GD oprzeć? Jakoś za pomocą imagecreateline? Albo coś w ten deseń? biggrin.gif Jakby się uprzeć to chyba można by tu zastosować jakieś algorytmy z wykresów smile.gif Czy jednak nie dałoby rady?


--------------------
Wróciłem po długiej przerwie... Bogatszy w wiedzę.
Go to the top of the page
+Quote Post
erix
post 13.01.2009, 23:42:20
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://www.phpclasses.org/browse/package/1160.html + imageantialias" title="Zobacz w manualu PHP" target="_manual


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
starach
post 14.01.2009, 09:26:51
Post #9





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Cytat(erix @ 13.01.2009, 23:42:20 ) *
Autor klasy matematykiem jest dobrym, ale programistą nie.
Go to the top of the page
+Quote Post
darkpytong
post 14.01.2009, 11:34:57
Post #10





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.01.2009

Ostrzeżenie: (0%)
-----


Wielkie dzięki za podpowiedzi  smile.gif

Trochę nad tym posiedziałem próbując zrobić coś z tym skryptem:

CODE
<?php

$segmentos =30;
$x=array(0,10,80,30);
$y=array(0,10,40,50);

function bezier($p,$steps){
  $t = 1 / $steps;
  $temp = $t * $t;
  $ret = array();
  $f = $p[0];
  $fd = 3 * ($p[1] - $p[0]) * $t;
  $fdd_per_2=3*($p[0]-2*$p[1]+$p[2])*$temp;
  $fddd_per_2=3*(3*($p[1]-$p[2])+$p[3]-$p[0])*$temp*$t;
  $fddd = $fddd_per_2 + $fddd_per_2;
  $fdd = $fdd_per_2 + $fdd_per_2;
  $fddd_per_6 = $fddd_per_2 * (1.0 / 3);
  for ($loop=0; $loop<$steps; $loop++) {
  array_push($ret,$f);
  $f = $f + $fd + $fdd_per_2 + $fddd_per_6;
  $fd = $fd + $fdd + $fddd_per_2;
  $fdd = $fdd + $fddd;
  $fdd_per_2 = $fdd_per_2 + $fddd_per_2;
  }
  return $ret;
}

$by = bezier($y,$segmentos);
$bx = bezier($x,$segmentos);
header ("Content-type: image/jpeg");
$tam = 200;
$im = imagecreate($tam,$tam);
$background_color = imagecolorallocate ($im, 200, 200, 200);
$tc = imagecolorallocate ($im, 233, 14, 91);
for($i=0;$i<$segmentos-1;$i++)
  imageline($im,$bx[$i],$tam-$by[$i],$bx[$i+1],$tam-$by[$i+1],$tc);
imagejpeg($im); 
imagedestroy($im);
?>


Niestety, skrypt niezbyt poprawnie działa, linie się zawijają i ogólnie dość wariacko zachowują.

Jednakże spróbuję tej klasy, mam nadzieję, że będzie to coś innego, działającego  smile.gif

A na marginesie: przypominam przezornie, że linie mają być generowane dynamicznie, ew. losowo.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 10:07