Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2011, 02:57   #1
Gamestop
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 17
Восклицание НЕцелые координаты PHP GD

Значит даны следующие координаты(это только часть):

49.0797080993652 53.0986289978027 0
49.0797080993652 53.0942039489746 0
49.0797080993652 53.0897750854492 0
49.0797080993652 53.0853500366211 0
49.0797080993652 53.0809211730957 0
49.0797080993652 53.0764923095703 0
49.0797080993652 53.0720634460449 0
49.0797080993652 53.0676345825195 0
49.0797080993652 53.0632057189941 0
49.0797080993652 53.0587730407715 0
49.0797080993652 53.0543441772461 0
49.0797080993652 53.0499114990234 0
49.0797080993652 53.0454788208008 0
49.0797080993652 53.0410461425781 0
49.0797080993652 53.0366134643555 0
49.0797080993652 53.0321807861328 0
49.0797080993652 53.0277481079102 0
49.0797080993652 53.0233154296875 0
49.0797080993652 53.0188789367676 0
49.0797080993652 53.0144462585449 0
49.0797080993652 53.010009765625 0
49.0797080993652 53.0055732727051 0
49.0797080993652 53.0011367797852 0
49.0797080993652 52.9967002868652 0
49.0797080993652 52.9922637939453 0
49.0797080993652 52.9878273010254 0
49.0797080993652 52.9833869934082 0
49.0797080993652 52.9789505004883 0
49.0797080993652 52.9745101928711 0
49.0797080993652 52.9700698852539 0
49.0797080993652 52.9656295776367 0
49.0797080993652 52.9611892700195 0
49.0797080993652 52.9567489624023 0
49.0797080993652 52.9523086547852 0
49.0797080993652 52.947868347168 0
49.0797080993652 52.9434242248535 0
49.0797080993652 52.9389801025391 0
49.0797080993652 52.9345397949219 0

первый столбец - это ширина, второй - долгота, третий, 0 -пусто, каждая координата - это 1 пиксель, 1 закрашено, так вот проблема в том что координаты НЕцелые числа, есть-ли возможность зарисовать данные координаты и чтобы ЭТО БЫЛО ЗАМЕТНО, если эти координаты округлить, тогда картинка неполучится, помогите пожалуйста как это можно зарисовать можно в CSS, или лучше Пискеслями В Библиотеке ГД на Языке PHP

Спасибо за внимание
Gamestop вне форума Ответить с цитированием
Старый 30.09.2011, 04:18   #2
Asinkrit
Пользователь
 
Аватар для Asinkrit
 
Регистрация: 02.04.2011
Сообщений: 48
По умолчанию

Ну так это довольно просто, надо всего лишь преобразовать координаты.

X0, Y0 - ширина и долгота. (входные данные)
Xmin, Ymin (минимальные координаты)
Xmax, Ymax (максимальные координаты)
zX, zY (длины осей X,Y или размеры конечного изображения в пикселях)
x,y - (преобразованные координаты, конечные данные)


и пишем функцию по преобразованию координат:

x = ((x0-xmin) / (Xmax - Xmin)) * zX;
y = ((y0-ymin) / (Ymax - Ymin)) * zY;

Конечно, еще придется поиграть с размерами конечного изображения.
Asinkrit вне форума Ответить с цитированием
Старый 03.10.2011, 17:56   #3
Gamestop
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 17
По умолчанию

СПАСИБО!

А скажите пожалуйста

Xmin, Ymin (минимальные координаты)
Xmax, Ymax (максимальные координаты)

Это какие именно

Максимальные из плоской оси? или из списка моих координат широты и долготы?
Gamestop вне форума Ответить с цитированием
Старый 03.10.2011, 18:16   #4
Asinkrit
Пользователь
 
Аватар для Asinkrit
 
Регистрация: 02.04.2011
Сообщений: 48
По умолчанию

Из списка ваших координат.. Размеры осей х,у вы задаете в zX, zY.
Asinkrit вне форума Ответить с цитированием
Старый 03.10.2011, 18:55   #5
Gamestop
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 17
По умолчанию

PHP код:
$img imagecreate(300,350);
imagecolorallocate($img,155,255,255);

function 
check($xo,$yo,$draw)
{
    if(
$draw == 0) return false;
    
$xmin 49.0797080993652;
    
$xmax 51.7153663635254;
    
$ymin 51.0986289978027;
    
$ymax 53.7317504882813;
    
$zx 300;
    
$zy 350;
    
    
$x = (($xo-$xmin) / ($xmax $xmin)) * $zx;
    
$y = (($yo-$ymin) / ($ymax $ymin)) * $zy;
    global 
$img;
    
imagesetpixel($img,$x,$y,100);
}

$file fopen('coords.txt','r');
$num1 0;
$num2 1;
$num3 2;

while(
$content fread($file,filesize('coords.txt')))
{
    
$res explode('    ',$content);
}
for(
$i=0;$i<count($res);$i++)
{
    
check($res[$num1],$res[$num2],$res[$num3]);
    
$num1 += 3;
    
$num2 += 3;
    
$num3 += 3;
}

header('Content-type: image/png');
imagepng($img); 
А вот из этих координат какие нужны вставить в функции check()

50.161563873291 53.010009765625 0
50.161563873291 53.0055732727051 0
50.161563873291 53.0011367797852 0
50.161563873291 52.9967002868652 0
50.161563873291 52.9922637939453 0
50.161563873291 52.9878273010254 0
50.161563873291 52.9833869934082 0
50.161563873291 52.9789505004883 0
50.161563873291 52.9745101928711 1
50.161563873291 52.9700698852539 1
50.161563873291 52.9656295776367 1
50.161563873291 52.9611892700195 1
50.161563873291 52.9567489624023 1
50.161563873291 52.9523086547852 1
50.161563873291 52.947868347168 1
50.161563873291 52.9434242248535 1
50.161563873291 52.9389801025391 1
50.161563873291 52.9345397949219 1
50.161563873291 52.9300956726074 1
50.161563873291 52.925651550293 1
50.161563873291 52.9212074279785 1
50.161563873291 52.9167594909668 1
50.161563873291 52.9123153686523 1
50.161563873291 52.9078712463379 1
50.161563873291 52.9034233093262 1
50.161563873291 52.8989753723145 1
50.161563873291 52.89453125 1
50.161563873291 52.8900833129883 1
50.161563873291 52.8856353759766 1
50.161563873291 52.8811836242676 1
50.161563873291 52.8767356872559 1
50.161563873291 52.8722877502441 1
50.161563873291 52.8678359985352 1
50.161563873291 52.8633842468262 1
50.161563873291 52.8589363098145 1
50.161563873291 52.8544845581055 1
50.161563873291 52.8500328063965 1
50.161563873291 52.8455810546875 1
50.161563873291 52.8411254882813 1
50.161563873291 52.8366737365723 1
50.161563873291 52.832218170166 1
50.161563873291 52.827766418457 1
50.161563873291 52.8233108520508 1
50.161563873291 52.8188552856445 1
50.161563873291 52.8143997192383 1
50.161563873291 52.809944152832 1
50.161563873291 52.8054885864258 1


через табуляцию каждый номер берёт

как здесь из данных координат нарисовать рисуночек(это не все координаты, все сюда непомещаются), я просто запутался, помогите
Gamestop вне форума Ответить с цитированием
Старый 03.10.2011, 19:02   #6
Asinkrit
Пользователь
 
Аватар для Asinkrit
 
Регистрация: 02.04.2011
Сообщений: 48
По умолчанию

Вроде все правильно, что не получается? Скиньте мне файл с координатами.
Asinkrit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ координаты shedi Помощь студентам 3 06.03.2011 13:28
Координаты A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2010 20:17
Координаты х у Onek Помощь студентам 4 17.05.2010 16:37
Координаты ОУ? Fainder Общие вопросы Delphi 9 15.10.2007 20:59
координаты Aram Общие вопросы C/C++ 5 08.06.2007 20:03