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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 15:18   #1
buba1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 17
По умолчанию Графика

вообщем проблема, ферез функцию джаваскрипт получаю координаты и пушу в базу, потом извлекаю их и необходимо отрисовать обьект используюя данные координаты, например слово привет- через линии не получается а точки нормально, в чем может быть трабл с линиями?

Код:
<?php
include'config.php';
$abc = mysql_query("SELECT x,y FROM 123");
header ("Content-type: image/png");
$img = imagecreate(1280, 1024);
$ink = imagecolorallocate($img, 255, 255, 255);
$ink2 = imagecolorallocate($img, 0, 0, 0);
while ($row = mysql_fetch_array($abc)) 
{
imageline($img,$x2,$y2,$row['x'],$row['y'],$ink2);
$x2=$row['x'];
$y2=$row['y'];
}
imagepng($img);
imagedestroy($img);
?>
Изображения
Тип файла: jpg 333.jpg (17.8 Кб, 133 просмотров)
buba1 вне форума Ответить с цитированием
Старый 09.10.2010, 23:56   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

На 99% уверен, что причина в неправильных координатах. Или вернее в их порядке. У вас линии должны идти от одной точке к другой, а в базе, возможно, они идут хаотично. Поэтому когда вы выводите всё точками, то вроде всё ок, а когда линиями, то каша.
То есть, нужно правильно структурировать порядок прорисовки линий.

Попробуйте выбрать первые 10 координат, например, и посмотрите.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 10.10.2010, 13:26   #3
buba1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 17
По умолчанию

первые 10 он нормально отображает)
вот собно сам код который получает и отправляет координаты в базу

Код:
var MouseCoords = {

getX: function(e)
{
if (e.pageX)
{
return e.pageX;
}
else if (e.clientX)
{
return e.clientX+(document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
}

return 0;
},

getY: function(e)
{
if (e.pageY)
{
return e.pageY;
}
else if (e.clientY)
{
return e.clientY+(document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}

return 0;
}
}

document.onmousemove = function(e)
{

if (!e) e = window.event;

var mouseCoordsLayer = document.getElementById('mouse_coords_on_move');

$.post('http:/*************123.php', {  
            x2:MouseCoords.getX(e),  
            y2:MouseCoords.getY(e),  
            location2:(document.location.href),
			makemap:escape
        });
}


Обрабатывающий код 123.пхп

Код:
if (isset($_POST['makemap'])) 
{ 
$query2 = sprintf("INSERT INTO mousemap SET x = '%s', y = '%s', location = '%s', datemouse=$dateclick",$_POST['x2'], $_POST['y2'], $_POST['location2']);
$result2 = mysql_query($query2);
}

mysql_close($db); 	
?>
buba1 вне форума Ответить с цитированием
Старый 10.10.2010, 14:34   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

попробуйте выборку изменить на
PHP код:
$abc mysql_query("SELECT x,y FROM 123 order by id asc"); 
где id - должно быть автоинкр поле в вашей таблице
ADSoft вне форума Ответить с цитированием
Старый 10.10.2010, 14:48   #5
buba1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 17
По умолчанию

нет не помогло
buba1 вне форума Ответить с цитированием
Старый 10.10.2010, 15:09   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

а в базу первоначально они были записаны именно в нужном порядке? у меня ощущение (по картинке) что для многих точек были записаны нулевые координаты... посмотрите бд?
ADSoft вне форума Ответить с цитированием
Старый 10.10.2010, 15:28   #7
buba1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 17
По умолчанию

да стоит автоинкримент на запись координат в бд по ID, нулевых координат нету...
судя по бд у меня идет запись ровно по Х координате 1,2,3 ...10,20 .....100,200,бац 800,840,потом 200,300, хотя рисовал плавную синусоиду возможно трабл при запись координат в саму базу данных)
buba1 вне форума Ответить с цитированием
Старый 10.10.2010, 17:56   #8
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Я воссоздал ваш скрипт и у меня всё прекрасно работает. Ищите ошибку во внесении координат в базу или в сортировке.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 16.10.2010, 14:15   #9
buba1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 17
По умолчанию

собсно возникла следующая проблема- перестало заноситься в базу координаты полность т.е. из слова привет тока первые три бувы зарисовываются а других просто нету

Это основная страница
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>hm</title>
	<link rel="stylesheet" type="text/css" href="http://localhost/style.css" /> 
	 <script type="text/javascript" src="http://localhost/jquery.js"> </script> ///БИБЛИОТЕКА СТАНДАРТНАЯ JQUERY

<script>
function defPosition(event) {
      var x = y = 0;
      if (document.attachEvent != null) { // Internet Explorer & Opera
            x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
            y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
      } else if (!document.attachEvent && document.addEventListener) { // Gecko
            x = event.clientX + window.scrollX;
            y = event.clientY + window.scrollY;
      } else {      }
      return {x:x, y:y};
}

document.onmousemove = function(event) {
      var event = event || window.event;
      document.body.innerHTML = "x = " + defPosition(event).x + ", y = " + defPosition(event).y;
	  $.post('http://localhost/clickmap.php', {  
            x2:defPosition(event).x,  
            y2:defPosition(event).y,  
            location2:(document.location.href),
			makemap:escape
        });
}
</script> 
       
</head>

<body>

<p align="left">&nbsp;</p> 


</body>
</html>
Запись в базу
Код:
<?php 
include 'config.php';  ///КОннект к БАЗЕ

$dateclick=date(Ymd);

if (isset($_POST['makemap'])) 
{ 
$query2 = sprintf("INSERT INTO 123 SET x = '%s', y = '%s', location = '%s', datemouse=$dateclick",$_POST['x2'], $_POST['y2'], $_POST['location2']);
$result2 = mysql_query($query2);
}

mysql_close($db); 	
?>
Рисуем картинку
Код:
<?php 
include 'config.php';
$abc = mysql_query("SELECT x,y FROM 123");

header ("Content-type: image/png");
$img = imagecreate(2500, 2500);
$ink = imagecolorallocate($img, 255, 255, 255);
$ink2 = imagecolorallocate($img, 0, 0, 0);

while ($row = mysql_fetch_array($abc)) 
{
imageline($img,$x2,$y2,$row['x'],$row['y'],$ink2);
$x2=$row['x'];
$y2=$row['y'];
//imagesetpixel($img, $row['x'], $row['y'], $ink2);
}

imagepng($img,"filename.png");
imagepng($img);
imagedestroy($img);
?>
когда исправлял проблему с координатами менял куски кода местами кое где на главной странице, и появилась вообщем фигня что не пишутся координаты все а только первоначальные. Выше был выкинут вной другой код по заносу координат а тут другой- сам факт там и тут одинаковая проблема

Последний раз редактировалось buba1; 16.10.2010 в 14:20.
buba1 вне форума Ответить с цитированием
Старый 26.10.2010, 23:07   #10
buba1
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 17
По умолчанию

Прошу помощи ибо действительно уже не понимаю почему проблема с записью нажатия/движения координат мыши, по начал идет запись нормально потом просто перестает записывать тоже слово "привет" не дописывается

Прикладываю полностью весь программный код и базу

config.php-база
example.php- путь к файлам, сама страница где прописан функции для вызова на запись движения или клика мыши
clickmap.php - отправляет в базу координаты, полученные от clickmap.js
clickmap.js- поправить путь к файлу, тут сами функции по движению и нажатию на мышку- определяет координаты и отправляет clickmap.php

Почему то координаты не записываются постоянно, а как то записалось немного и потом больше не пишутся
Вложения
Тип файла: rar abc.rar (27.4 Кб, 8 просмотров)
buba1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
графика Anty_F[R]eez Общие вопросы C/C++ 0 11.06.2010 00:17
Графика** Lenivec** Паскаль, Turbo Pascal, PascalABC.NET 2 28.04.2010 23:41
Графика dancer_el Паскаль, Turbo Pascal, PascalABC.NET 0 17.04.2010 14:07
Графика!!! H'orn Общие вопросы .NET 1 20.03.2010 17:40