求一个思路,请高手帮帮忙

newmcz 2003-11-23 10:41:34
我要画一个金字塔的图形,并要填充颜色,现在我下面的代码图型已经画好的,请问如何在每一多边型里填充颜色,或思路是什么,比如用层,定区域范围什么的.



<html>
<head>
<title>JavaScript绘图</title>
<script language="JavaScript">
IE4 = ! (navigator.appVersion.charAt(0) < "4" || navigator.appName == "Netscape")

var xo=0
var yo=0
var Ox = -1
var Oy = -1

var rad = Math.PI/180
var maxY = 400
var color = "black"

function print(str) {
document.write(str)
}

function orgY(y) {
return maxY-y
}
function outPlot(x,y,w,h) {
print('<span style="position:absolute;left:'+x+';top:'+y+';height:'+h+';width:'+w+';font-size:1px;background-color:'+color+'"></span>')
}

function Plot(x,y) {
outPlot(x,y,1,1)
if(Ox>=0 || Oy>=0) {
ShowLine(Ox,Oy,x-Ox,y-Oy)
}
Ox = x
Oy = y
}

function ShowLine(x,y,w,h) {
if(w<0) {
x += w
w = Math.abs(w)
}
if(h<0) {
y += h
h = Math.abs(h)
}
if(w<1) w=1
if(h<1) h=1
outPlot(x,y,Math.round(w),Math.round(h))
}

function LineTo(x,y) {
Line(xo,yo,x,y)
}

function sign(n) {
if(n>0)
return 1
if(n<0)
return -1
return n
}

function Line(x1,y1,x2,y2) {
x2 = Math.round(x2)
y2 = Math.round(y2)
xo = x2
yo = y2
y1 = orgY(y1)
y2 = orgY(y2)
var str = ""
var i=0

var x = x1
var y = y1
dx = Math.abs(x2-x1)
dy = Math.abs(y2-y1)
s1 = sign(x2-x1)
s2 = sign(y2-y1)

if(dx==0 || dy==0) {
ShowLine(x1,y1,x2-x1,y2-y1)
return
}

if(dx>dy) {
temp = dx
dx = dy
dy = temp
key = 1
}else
key = 0
e = 2*dy-dx

for(i=0;i<dx;i++) {
px = 0
py = 0
Plot(x,y)
while(e>=0) {
if(key==1) {
x += s1
px += s1
}else {
y += s2
py += s2
}
e = e-2*dx
}
if(key==1)
y += s2
else
x += s1
e = e+2*dy
}
}

function MoveTo(x,y) {
Ox = Oy = -1
xo = Math.round(x)
yo = Math.round(y)
}
</script>
</head>
<body>
<script>
if(IE4) {
var oColor = "red"
MoveTo(300,-100)
LineTo(700,-100)
LineTo(500,300)
LineTo(300,-100)
MoveTo(700,-100)
LineTo(730,-30)
LineTo(500,300)

MoveTo(350,0)
LineTo(650,0)
LineTo(673,53)

MoveTo(400,100)
LineTo(600,100)
LineTo(621,131)

MoveTo(450,200)
LineTo(550,200)
LineTo(562,215)

}else {
document.write("<p> </p><table bgcolor=#FF0000><tr><td><font color=#FFFF00>对不起!您的浏览器不能支持该页的某些功能,请换用IE4.0以上版本的浏览器!谢谢!</font></td></tr></table>")
}
</script>
</body>
</html>
...全文
51 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
阿米果 2003-11-24
http://www.lshdic.com/wenzhang.asp?str=Vml&page=1

这里的vml有很多教程
  • 打赏
  • 举报
回复
newmcz 2003-11-24
up
  • 打赏
  • 举报
回复
newmcz 2003-11-23
我找了点资料,还有问题,如何在下面的图形中填充4种颜色(文件要为htm)并在每块中加上文字标识.

<HTML xmlns:v>
<HEAD>
<META http-equiv="Content-Type" content="text/html; Charset=gb2312">
<TITLE></TITLE>
<STYLE>
v\:*{behavior:url(#default#VML);} //这里声明了v作为VML公用变量
</STYLE>
</HEAD>
<BODY>
<v:line strokecolor='black' from='40,350' to='200,20'/>
<v:line strokecolor='black' from='40,350' to='360,350'/>
<v:line strokecolor='black' from='200,20' to='360,350'/>

<v:line strokecolor='black' from='200,20' to='200,350'/>
<v:line strokecolor='black' from='120,185' to='280,185'/>
</BODY>
</HTML>
  • 打赏
  • 举报
回复
sunicom 2003-11-23
gz
  • 打赏
  • 举报
回复
newmcz 2003-11-23
我是要动态生成的,金字塔的层数是动态变化的,比如开始5层,填充5种颜色,要是20层,金字塔就要分20层,填不同的颜色,所以要考虑的问题多点,谁有相关资料,帮帮忙.
  • 打赏
  • 举报
回复
supere 2003-11-23
搜索一下VML的资料吧!可是很简单的实现你要的功能!
代码量也很少!
  • 打赏
  • 举报
回复
newmcz 2003-11-23
因为不会,都没听说过,我这东西要的还挺急,要几天搞定的
如果有资料,我到愿意试试.您有什么思路或是建议可以说说.
  • 打赏
  • 举报
回复
supere 2003-11-23
为什么不用VML?
  • 打赏
  • 举报
回复
newmcz 2003-11-23
有没有VML的教程提供一下
  • 打赏
  • 举报
回复
supere 2003-11-23
看来你已经找到了!然后用JS动态写VML就好了!
  • 打赏
  • 举报
回复
newmcz 2003-11-23
<HTML xmlns:v>
<HEAD>
<META http-equiv="Content-Type" content="text/html; Charset=gb2312">
<TITLE></TITLE>
<STYLE>
v\:*{behavior:url(#default#VML);} //这里声明了v作为VML公用变量
</STYLE>
</HEAD>
<BODY>
<v:line strokecolor='black' from='40,350' to='200,20'/>
<v:line strokecolor='black' from='40,350' to='360,350'/>
<v:line strokecolor='black' from='200,20' to='360,350'/>

<v:line strokecolor='black' from='200,20' to='200,350'/>
<v:line strokecolor='black' from='120,185' to='280,185'/>

<v:polyline title="" fillcolor="#000000" points=" 40,350 120,185 280,185 360,350"> </v:polyline>
<v:polyline title="" fillcolor="#654321" points=" 120,185 280,185 200,20"> </v:polyline>

</BODY>
</HTML>
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript

8.6w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2003-11-23 10:41
社区公告
暂无公告