hdt(倦怠) 和 net_lover(【孟子E章】) 解答了的问题,但是问题还是没有解决,继续在线等高手解答~~~

yao991118 2007-01-31 09:15:25
问题是这样的:我做的是一个关于人员活动轨迹的功能,表示出人员A某段时间段的活动轨迹,所以叫要从数据库中提取人员A的活动坐标和到达该坐标的时间,在页面上我用一张Image图片来表示人员A,根据从数据库中提取的数据中时间的先后,来按坐标移动图片Image,当然,从数据库中提取的坐标点一般都是两个或两个以上,移动的效果net_lover(【孟子E章】) 已经给我解决了,但是却达不到最终的效果,我自己也研究过了,但是还是没有解决。我昨天发的帖子:
http://community.csdn.net/Expert/topic/5326/5326613.xml?temp=.5063288
net_lover(【孟子E章】) 给我的代码:
<body onload="mv()">
<img src="http://dotnet.aspx.cc/Images/logoSite.gif" id=mxh style="position:absolute">
<script>
m = 100,n=100,t=null
function mv()
{
oImg = document.getElementById("mxh")
oImg.style.top =m+ "px"
oImg.style.left =n+ "px"
m++
n+=3
t = window.setTimeout("mv()",10)
if(m>300)
{
window.clearTimeout(t)
}
}
</script>
</body>
这个代码是让图片从一个固定的起始点,按照规定了的步长移动到规定好了的坐标,但是我从数据库提取的点是没有规律的,我不可能每次提取数据库中的坐标点都要考虑步长,我希望能有高手给我提供一段不用考虑步长,只要提供两个坐标点,图片就会以直线距离移动的代码,我考虑了很久都没有办法,希望有高手救救我,在线等~~~,如果问题有什么不清楚的,大家尽管问,谢谢。。。
...全文
510 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
<!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>
<title>创建表头固定,表体可滚动的GridView</title>
</head>
<body onload="mv()">
<img src="http://dotnet.aspx.cc/Images/logoSite.gif" id=mxh style="position:absolute"/>
<script>
//假如你的坐标很多,越多这个方法越适用
var poly = new Array("2,2","6,23","10,8","16,14","20,18","20,20","22,25","30,45","80,50")
var polyWithStep = new Array()
var SplitNum = 50
for(i =0;i<poly.length - 1;i++)
{
m = parseInt(poly[i].split(",")[0])
n = parseInt(poly[i].split(",")[1])
m1 =parseInt( poly[i+1].split(",")[0])
n1 = parseInt(poly[i+1].split(",")[1])

stepX =( m1-m )/SplitNum
stepY = (n1-n)/SplitNum

for(j = 0;j<SplitNum;j++)
{
pointX = m + stepX *j
pointY = n + stepY *j
point = pointX + ":" + pointY
polyWithStep[i*SplitNum+j] = point
}
}
t=null
i = 0;
function mv()
{
if(poly.length<2)
{
alert("坐标太少")
return
}
oDiv = document.createElement("DIV")
oDiv.style.backgroundColor="red"
oDiv.style.width="1px"
oDiv.style.height="1px"
oDiv.style.lineHeight="1px"
oDiv.style.position="absolute"
document.getElementById("mxh").style.top = oDiv.style.top=polyWithStep[i].split(":")[0]+ "px"
document.getElementById("mxh").style.left = oDiv.style.left=polyWithStep[i].split(":")[1]+ "px"
document.body.appendChild(oDiv)
i++
t = window.setTimeout("mv()",10)
if(i == polyWithStep.length)
{
window.clearTimeout(t)
}
}
</script>
</body>
</html>

不限制坐标数的
yao991118 2007-01-31
  • 打赏
  • 举报
回复
rickjelly2004(每逢佳节倍思亲-------------快乐生活) 的方法是对的,但就是实现不了如果是2个坐标点以上的问题,哎,求高手解答啊
wanghui0380 2007-01-31
  • 打赏
  • 举报
回复
哎,去闪客帝国找"小小",让他给你画线人好了
Ivony 2007-01-31
  • 打赏
  • 举报
回复
崩溃ing……
yao991118 2007-01-31
  • 打赏
  • 举报
回复
net_lover(【孟子E章】) :
还有就是我的坐标点是从数据库中读取的,也就是要获取服务器的变量,不知道怎么获取
yao991118 2007-01-31
  • 打赏
  • 举报
回复
net_lover(【孟子E章】) :
也就是没有步长,显示出来的就是跳来跳去的,我要的就是它移动的效果啊
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
连轨迹和图片一起移动
<!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>
<title>创建表头固定,表体可滚动的GridView</title>
</head>
<body onload="mv()">
<img src="http://dotnet.aspx.cc/Images/logoSite.gif" id=mxh style="position:absolute"/>
<script>
//假如你的坐标很多,越多这个方法越适用
var poly = new Array("2,2","6,3","10,8","12,14","18,18","20,20","22,25","30,45","80,50")
t=null
i = 0;
function mv()
{
oDiv = document.createElement("DIV")
oDiv.style.backgroundColor="red"
oDiv.style.width="5px"
oDiv.style.height="5px"
oDiv.style.lineHeight="5px"
oDiv.style.position="absolute"
document.getElementById("mxh").style.top = oDiv.style.top=poly[i].split(",")[0]+ "px"
document.getElementById("mxh").style.left = oDiv.style.left=poly[i].split(",")[0]+ "px"
document.body.appendChild(oDiv)
i++
t = window.setTimeout("mv()",100)
if(i == poly.length)
{
window.clearTimeout(t)
}
}
</script>
</body>
</html>
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
你要画线,可以参考
http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm
这个已经封装了
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
也可以画点

<!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>
<title>创建表头固定,表体可滚动的GridView</title>
</head>
<body onload="mv()">
<script>
//假如你的坐标很多,越多这个方法越适用
var poly = new Array("2,2","6,3","10,8","12,14","18,18","20,20","22,25","30,45","80,50")
t=null
i = 0;
function mv()
{
oDiv = document.createElement("DIV")
oDiv.style.backgroundColor="red"
oDiv.style.width="5px"
oDiv.style.height="5px"
oDiv.style.lineHeight="5px"
oDiv.style.position="absolute"

oDiv.style.top = poly[i].split(",")[0]+ "px"
oDiv.style.left = poly[i].split(",")[1] + "px"
document.body.appendChild(oDiv)
i++
t = window.setTimeout("mv()",100)
if(i == poly.length)
{
window.clearTimeout(t)
}
}
</script>
</body>
</html>
hertcloud 2007-01-31
  • 打赏
  • 举报
回复
对于数据 来说
你除了保存 坐标点之外
还应该 保存 相对于 一个固定位置的 方向坐标
这个可以是简单的 上下左右 也可以是 一个全面的360度 坐标轴
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
你的坐标越多,这个方法越好
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
<body onload="mv()">
<img src="http://dotnet.aspx.cc/Images/logoSite.gif" id=mxh style="position:absolute">
<script>
//假如你的坐标很多,越多这个方法越适用
var poly = new Array("2,2","6,3","10,8","12,14","18,18","20,20","22,25","30,45","80,50")
t=null
i = 0;
function mv()
{

oImg = document.getElementById("mxh")
oImg.style.top = poly[i].split(",")[0]+ "px"
oImg.style.left = poly[i].split(",")[1] + "px"
i++
t = window.setTimeout("mv()",100)
if(i == poly.length)
{
window.clearTimeout(t)
}
}
</script>
</body>
yao991118 2007-01-31
  • 打赏
  • 举报
回复
net_lover(【孟子E章】) :
数组?能给个例子吗?
孟子E章 2007-01-31
  • 打赏
  • 举报
回复
如果位置很多,就不用步长了,直接从a点移动到b点,再移动到C点,将你的座标放到数组即可
yao991118 2007-01-31
  • 打赏
  • 举报
回复
wanghui0380(放歌):
不好意思,我是新手,很多方面都没有什么经验,和实际的实力,希望我问的问题各位高手不要见怪,能指教就好心指教一下小弟,小弟不胜感激
wanghui0380 2007-01-31
  • 打赏
  • 举报
回复
I服了you
2个,3个,n个有区别吗?递归调用就是了
yao991118 2007-01-31
  • 打赏
  • 举报
回复
rickjelly2004(每逢佳节倍思亲-------------快乐生活):
谢谢你,如果我从数据库中提取的坐标的个数是2个以上,该怎么灵活的实现啊?
wanghui0380 2007-01-31
  • 打赏
  • 举报
回复
我明白你的意思了,你不想画出曲线
那里直接把直接计算出来就成,两点确定一条直线(这个你该会把)
wanghui0380 2007-01-31
  • 打赏
  • 举报
回复
??你不需要去管步长,步长只是为了产生一个动态帧
你好比拍电影,我不管你要拍一个小时还是半分钟,反正一秒24帧 ok
yao991118 2007-01-31
  • 打赏
  • 举报
回复
rickjelly2004(每逢佳节倍思亲-------------快乐生活):
谢谢你,如果我从数据库中提取的坐标的个数是2个以上,该怎么灵活的实现啊?
加载更多回复(13)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧