//根据起点和终点画弧线
function ArcArrow(x1,y1,x2,y2)
{
var radius,center_x,center_y,start_angl,end_angl,new_x,new_y,temp_angl;
if(y1!=y2||x1<x2)
{
radius = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
var height = radius*Math.sin(60*rad);
var angl = Math.atan(-(x2-x1)/(y2-y1));
center_x = (x1+x2)/2 + height*Math.cos(angl);
center_y = (y1+y2)/2 + height*Math.sin(angl);
start_angl = angl/rad - 30+180;
end_angl = angl/rad + 30+180;
}
else
{
radius = Math.abs(x2-x1);
center_x = (x1+x2)/2;
center_y = y2 + radius*Math.sin(60*rad);
start_angl = 240;
end_angl = 300;
}
Arc(center_x,center_y,radius,start_angl,end_angl);
if(y2 < y1)
{
temp_angl = end_angl - 5;
new_x = center_x + radius*Math.cos(temp_angl*rad);
new_y = center_y + radius*Math.sin(temp_angl*rad);
}
else
{
temp_angl = start_angl + 5;
new_x = center_x + radius*Math.cos(temp_angl*rad);
new_y = center_y + radius*Math.sin(temp_angl*rad);
}
Arrow(new_x,new_y,x2,y2);
}
function ArcArrow(x1,y1,x2,y2)
{
var radius,center_x,center_y,start_angl,end_angl,new_x,new_y,temp_angl;
if(y1!=y2||x1<x2)
{
radius = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
var height = radius*Math.sin(60*rad);
var angl = Math.atan(-(x2-x1)/(y2-y1));
center_x = (x1+x2)/2 + height*Math.cos(angl);
center_y = (y1+y2)/2 + height*Math.sin(angl);
start_angl = angl/rad - 30+180;
end_angl = angl/rad + 30+180;
}
else
{
radius = Math.abs(x2-x1);
center_x = (x1+x2)/2;
center_y = y2 + radius*Math.sin(60*rad);
start_angl = 240;
end_angl = 300;
}
Arc(center_x,center_y,radius,start_angl,end_angl);
if(y2 < y1)
{
temp_angl = end_angl - 5;
new_x = center_x + radius*Math.cos(temp_angl*rad);
new_y = center_y + radius*Math.sin(temp_angl*rad);
}
else
{
temp_angl = start_angl + 5;
new_x = center_x + radius*Math.cos(temp_angl*rad);
new_y = center_y + radius*Math.sin(temp_angl*rad);
}
Arrow(new_x,new_y,x2,y2);
}
解决方案 »
- jquery form 不执行回调函数,error函数也不执行
- =======jquery在文本框后面追加一张图片,怎么移除了!!========
- 急!急!急!javascript在数值计算的时候结果如何强制不使用科学计数法
- 求不会被拦截的js弹窗代码(不用DIV层的)
- 怎样用JS向DIV中添加元素,实现自动索引
- 关于日期计算问题。
- 关于javaScript全选的问题?
- 我想在窗口打开后自动执行一下最大化按钮命令,如何写代码????
- 我调用了IE的打印(window.print),又不想弹出打印的对话框,如何解决?
- 教材方案,各位帮忙
- 用window.attachEvent给onresize赋值和window.onresize=function(){alert("怎么回事")}
- 模式窗口showModalDialog问题
function add_button(v, l_but, t_but,str)
{
var bt = Form1.document.createElement("input");
bt.type = "button";
bt.value = v;
bt.style.position = "absolute";
bt.style.left = l_but;
bt.style.top= t_but;
bt.style.border = "none";
bt.onmouseover = function()
{
if(bt.style.left < '500')
{
ShowLayer2();
SetURL2(str);
}
else
{
ShowLayer1();
SetURL1(str);
}
}
bt.onmouseout = function()
{
if(bt.style.left < '500')
{
SetNone2();
}
else
{
SetNone1();
}
}
Form1.appendChild(bt);
}
//动态添加超链接
function add_link(ref, text, l_link, t_link)
{
var link = Form1.document.createElement("a");
link.href = ref;
link.innerText = text
link.style.position = "absolute";
link.style.left = l_link;
link.style.top = t_link;
Form1.appendChild(link);
}
在哪个地方定义的
可是我把代码原原本本贴到HTML里面,就是正确的。
改成调用这个文件就是错的。为什么呢?
我实在查不出来代码错在哪里了?
color = "red";
MoveTo(20,20);
LineTo(200,20);
Arc(300,300,100,90,180); //到这都可以画出图形function Blue(start_x,start_y,end_x,end_y)
{
color = "blue"
MoveTo(start_x,start_y);
LineTo(end_x,end_y);
}
Blue(20,20,300,30);//这个就不可以画图了。为什么?
急疯了都……
function Blue(start_x,start_y,end_x,end_y)
{
color = "blue"
MoveTo(eval(start_x),eval(start_y));
LineTo(eval(end_x),eval(end_y));
}
我这样写的试了MoveTo是好用的。
不行啊……
只发函数体里边的东西都不让发嘛?
是不是放在HEAD之间的代码和放在body之间的代码不能同时放在js文件里面啊?
我把head部分的代码放在html语言中,body里面的代码放在history.js文件中,然后
调用这个文件,就没有错误了。
大家能告诉我为什么嘛?
谢谢楼上的各位,这个问题让我郁闷了两天。
组长帮忙也在弄,没弄出来。现在暂且就用了我上面这个方法。谢谢各位。