请教高手关于JS画图代码

cpio 2003-03-30 07:14:36
二维坐标,给定一些点,要求用JS画出光滑曲线

这些点之间没有联系,不是在函数上取的一些值

不知道可不可能实现
...全文
1451 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
pplynn 2010-06-07
  • 打赏
  • 举报
回复
用插值法可以做到任意点用光滑曲线连接
emu_ston 2003-04-01
  • 打赏
  • 举报
回复
解决了问题请把解决方案帖出来,大家交流嘛
cpio 2003-04-01
  • 打赏
  • 举报
回复
贝塞尔曲线真不錯,謝謝 AC97
cpio 2003-04-01
  • 打赏
  • 举报
回复
<param name="AllowPropertyToolbox" value="-1">
<param name="AutoFit" value="0">
<param name="Calculation" value="-4105">
<param name="Caption" value="Microsoft Office Spreadsheet">
<param name="DisplayColumnHeadings" value="-1">
<param name="DisplayGridlines" value="-1">
<param name="DisplayHorizontalScrollBar" value="0">
<param name="DisplayOfficeLogo" value="-1">
<param name="DisplayPropertyToolbox" value="0">
<param name="DisplayRowHeadings" value="-1">
<param name="DisplayToolbar" value="0">
<param name="DisplayVerticalScrollBar" value="0">
<param name="DisplayWorkbookTabs" value="0">
<param name="EnableEvents" value="-1">
<param name="MaxHeight" value="80%">
<param name="MaxWidth" value="80%">
<param name="MoveAfterReturn" value="-1">
<param name="MoveAfterReturnDirection" value="-4121">
<param name="RightToLeft" value="0">
<param name="ScreenUpdating" value="-1">
<param name="EnableUndo" value="-1">
</object></div>

</body>

</html>
cpio 2003-04-01
  • 打赏
  • 举报
回复
<param name="ScreenUpdating" value="-1">
<param name="EnableEvents" value="-1">
</object><p align="left">
<span style="font-size: 9pt; font-weight: 700">请在下面输入数据:</span><br>
<object id="Book4_10277_Spreadsheet"
classid="CLSID:0002E551-0000-0000-C000-000000000046" width="700" height="34" style="font-size: 9pt" border="0">
<param name=DisplayTitleBar value=0>
<param name=DataType value=XMLDATA>
<param name=XMLData
value="<?xml version="1.0"?>
<ss:Workbook xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<x:ExcelWorkbook>
<x:ProtectStructure>False</x:ProtectStructure>
<x:ActiveSheet>0</x:ActiveSheet>
<x:HideWorkbookTabs/>
<x:HideHorizontalScrollBar/>
<x:HideVerticalScrollBar/>
</x:ExcelWorkbook>
<ss:Styles>
<ss:Style ss:ID="Default">
<ss:Alignment ss:Horizontal="Automatic" ss:Rotate="0.0" ss:Vertical="Center"
ss:ReadingOrder="Context"/>
<ss:Borders>
</ss:Borders>
<ss:Font ss:FontName="宋体" ss:Size="12" ss:Color="Automatic" ss:Bold="0"
ss:Italic="0" ss:Underline="None"/>
<ss:Interior ss:Color="Automatic" ss:Pattern="None"/>
<ss:NumberFormat ss:Format="General"/>
<ss:Protection ss:Protected="1"/>
</ss:Style>
<ss:Style ss:ID="wc8B5EB320">
<ss:Alignment ss:Rotate="0.0" ss:Vertical="Center" ss:ReadingOrder="Context"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1.0"/>
</ss:Borders>
<ss:Font ss:FontName="宋体" ss:Size="10" ss:Color="#000000" ss:Bold="0"
ss:Italic="0" ss:Underline="None"/>
<ss:Interior/>
</ss:Style>
<ss:Style ss:ID="wc0B3EB320">
<ss:Alignment ss:Vertical="Center"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1.0"/>
</ss:Borders>
<ss:Font ss:FontName="宋体" ss:Size="12"/>
<ss:Interior/>
</ss:Style>
<ss:Style ss:ID="wc812EB320">
<ss:Alignment ss:Rotate="0.0" ss:Vertical="Center" ss:ReadingOrder="Context"/>
<ss:Font ss:FontName="宋体" ss:Size="10" ss:Color="#000000" ss:Bold="0"
ss:Italic="0" ss:Underline="None"/>
<ss:Interior/>
</ss:Style>
</ss:Styles>
<c:ComponentOptions>
<c:Toolbar ss:Hidden="1">
</c:Toolbar>
<c:Label>
<c:Caption>Microsoft Office Spreadsheet</c:Caption>
</c:Label>
<c:MaxHeight>80%</c:MaxHeight>
<c:MaxWidth>80%</c:MaxWidth>
<c:NextSheetNumber>1</c:NextSheetNumber>
</c:ComponentOptions>
<x:WorkbookOptions>
<c:OWCVersion>10.0.0.2621 </c:OWCVersion>
<x:Height>900</x:Height>
<x:Width>18521</x:Width>
</x:WorkbookOptions>
<ss:Worksheet ss:Name="Sheet1">
<x:WorksheetOptions>
<x:Selected/>
<x:ViewableRange>R1:R262144</x:ViewableRange>
<x:Selection>R1C2</x:Selection>
<x:FreezePanes/>
<x:FrozenNoSplit/>
<x:LeftColumnVisible>0</x:LeftColumnVisible>
<x:LeftColumnRightPane>4</x:LeftColumnRightPane>
<x:SplitVertical>4</x:SplitVertical>
<x:ActivePane>1</x:ActivePane>
<x:ProtectContents>False</x:ProtectContents>
<x:Unsynced/>
</x:WorksheetOptions>
<c:WorksheetOptions>
</c:WorksheetOptions>
<ss:Table ss:ExpandedColumnCount="10" ss:ExpandedRowCount="1"
ss:DefaultColumnWidth="54.0" ss:DefaultRowHeight="14.25">
<ss:Column ss:Width="53.25" ss:AutoFitWidth="0" ss:StyleID="wc812EB320"/>
<ss:Column ss:Width="52.5" ss:AutoFitWidth="0" ss:StyleID="wc812EB320"/>
<ss:Column ss:Width="50.25" ss:AutoFitWidth="0" ss:StyleID="wc812EB320"/>
<ss:Column ss:Span="1" ss:Width="49.5" ss:AutoFitWidth="0"
ss:StyleID="wc812EB320"/>
<ss:Column ss:StyleID="wc812EB320"/>
<ss:Column ss:Width="47.25" ss:AutoFitWidth="0" ss:StyleID="wc812EB320"/>
<ss:Column ss:Width="48.0" ss:AutoFitWidth="0" ss:StyleID="wc812EB320"/>
<ss:Column ss:StyleID="wc812EB320"/>
<ss:Column ss:Width="45.75" ss:AutoFitWidth="0" ss:StyleID="wc812EB320"/>
<ss:Row ss:AutoFitHeight="0" ss:StyleID="wc0B3EB320">
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">1</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">2</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">3</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">4</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">5</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">6</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">7</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">8</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">9</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="wc8B5EB320">
<ss:Data ss:Type="Number">10</ss:Data>
</ss:Cell>
</ss:Row>
</ss:Table>
<x:PublishObjects>
<x:PublishObject>
<x:Id>10277</x:Id>
<x:DivID>Book4_10277</x:DivID>
<x:SourceType>SourceChart</x:SourceType>
<x:Source>图表 1</x:Source>
<x:HtmlType>HtmlChart</x:HtmlType>
<x:Location x:HRef="E:\My Documents\Page1.htm"/>
</x:PublishObject>
</x:PublishObjects>
</ss:Worksheet>
<o:DocumentProperties>
<o:Author>陈毅</o:Author>
<o:Created>2003-04-01T09:50:22Z</o:Created>
<o:Company>哈尔滨工业大学</o:Company>
<o:Version>10.2625</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:DownloadComponents/>
<o:LocationOfComponents HRef="file:///K:\"/>
</o:OfficeDocumentSettings>
</ss:Workbook>
">
cpio 2003-04-01
  • 打赏
  • 举报
回复
大家看看吧

test.htm:

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>画图程序</title>
</head>

<body topmargin="0" leftmargin="0">

<div id="Book4_10277" align=center x:publishsource="Excel">
<p align="left">
<object
id="Book4_10277_Chart" classid="CLSID:0002E556-0000-0000-C000-000000000046"
width="700" height="350" border="0">
<param name=XMLData
value="<xml xmlns:x="urn:schemas-microsoft-com:office:excel">
<x:ChartSpace>
<x:OWCVersion>10.0.0.2621 </x:OWCVersion>
<x:Width>18521</x:Width>
<x:Height>9260</x:Height>
<x:DataSource>
<x:Type>OSP</x:Type>
<x:Name>Book4_10277_Spreadsheet</x:Name>
</x:DataSource>
<x:Palette>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000000</x:Entry>
<x:Entry>#000080</x:Entry>
<x:Entry>#FF00FF</x:Entry>
<x:Entry>#FFFF00</x:Entry>
<x:Entry>#00FFFF</x:Entry>
<x:Entry>#800080</x:Entry>
<x:Entry>#800000</x:Entry>
<x:Entry>#008080</x:Entry>
<x:Entry>#0000FF</x:Entry>
<x:Entry>#00CCFF</x:Entry>
<x:Entry>#CCFFFF</x:Entry>
<x:Entry>#CCFFCC</x:Entry>
<x:Entry>#FFFF99</x:Entry>
<x:Entry>#99CCFF</x:Entry>
<x:Entry>#FF99CC</x:Entry>
<x:Entry>#CC99FF</x:Entry>
<x:Entry>#FFCC99</x:Entry>
</x:Palette>
<x:DefaultFont>宋体</x:DefaultFont>
<x:Interior>
<x:Color>#FFFFFF</x:Color>
<x:FillEffect>
<x:fill x:type="Solid" x:color="#FFFFFF"/>
</x:FillEffect>
</x:Interior>
<x:Chart>
<x:PlotArea>
<x:Border>
<x:Color>#B0C4DE</x:Color>
<x:Weight>0</x:Weight>
<x:LineStyle>Solid</x:LineStyle>
</x:Border>
<x:Interior>
<x:Color>#000000</x:Color>
<x:FillEffect>
<x:fill x:type="Solid" x:color="#000000"/>
</x:FillEffect>
</x:Interior>
<x:Graph>
<x:SubType>Smooth</x:SubType>
<x:Type>Line</x:Type>
<x:SubType>Standard</x:SubType>
<x:Series>
<x:Line>
<x:Color>#00FF00</x:Color>
<x:Weight>1</x:Weight>
<x:LineStyle>Solid</x:LineStyle>
<x:LineJoin>JoinRound</x:LineJoin>
</x:Line>
<x:FormatMap>
</x:FormatMap>
<x:Name>系列 1</x:Name>
<x:Caption>
<x:DataSourceIndex>-1</x:DataSourceIndex>
<x:Data>&quot;系列1&quot;</x:Data>
</x:Caption>
<x:Index>0</x:Index>
<x:Value>
<x:DataSourceIndex>0</x:DataSourceIndex>
<x:Data>Sheet1!$A$1:$J$1</x:Data>
</x:Value>
<x:DataLabels>
<x:Border>
<x:ColorIndex>None</x:ColorIndex>
</x:Border>
<x:Font>
<x:Color>#00FF00</x:Color>
<x:B>Automatic</x:B>
<x:I>Automatic</x:I>
<x:U>Automatic</x:U>
</x:Font>
<x:Number>
<x:FormatString>General</x:FormatString>
</x:Number>
<x:ShowValue/>
<x:Separator>,</x:Separator>
<x:Position>Top</x:Position>
</x:DataLabels>
<x:Marker>
<x:Symbol>None</x:Symbol>
</x:Marker>
<x:Explode>0</x:Explode>
<x:Thickness>0</x:Thickness>
<x:Smooth/>
</x:Series>
<x:Dimension>
<x:ScaleID>37432148</x:ScaleID>
<x:Index>Categories</x:Index>
</x:Dimension>
<x:Dimension>
<x:ScaleID>37432368</x:ScaleID>
<x:Index>Value</x:Index>
</x:Dimension>
<x:Overlap>100</x:Overlap>
<x:GapWidth>150</x:GapWidth>
<x:FirstSliceAngle>0</x:FirstSliceAngle>
</x:Graph>
<x:Axis>
<x:AxisID>37437068</x:AxisID>
<x:ScaleID>37432148</x:ScaleID>
<x:Type>Category</x:Type>
<x:Line>
<x:Color>#B0C4DE</x:Color>
<x:Weight>0</x:Weight>
<x:LineStyle>Solid</x:LineStyle>
</x:Line>
<x:Font>
<x:FontName>Arial</x:FontName>
<x:Size>8</x:Size>
</x:Font>
<x:Number>
<x:FormatString>General</x:FormatString>
</x:Number>
<x:CrossingAxis>37437776</x:CrossingAxis>
<x:MajorUnit>1.0</x:MajorUnit>
<x:MajorTick>Inside</x:MajorTick>
<x:MinorTick>None</x:MinorTick>
<x:Placement>Bottom</x:Placement>
<x:TickMarkSkip>1</x:TickMarkSkip>
<x:GroupingEnum>Auto</x:GroupingEnum>
</x:Axis>
<x:Axis>
<x:AxisID>37437776</x:AxisID>
<x:ScaleID>37432368</x:ScaleID>
<x:Type>Value</x:Type>
<x:Line>
<x:Color>#B0C4DE</x:Color>
<x:Weight>0</x:Weight>
<x:LineStyle>Solid</x:LineStyle>
</x:Line>
<x:Font>
<x:FontName>Arial</x:FontName>
<x:Size>9</x:Size>
</x:Font>
<x:Number>
<x:FormatString>General</x:FormatString>
</x:Number>
<x:CrossingAxis>37437068</x:CrossingAxis>
<x:MajorTick>Inside</x:MajorTick>
<x:MinorTick>None</x:MinorTick>
<x:Placement>Left</x:Placement>
</x:Axis>
</x:PlotArea>
<x:Name>图表 1</x:Name>
</x:Chart>
<x:Scaling>
<x:ScaleID>37432148</x:ScaleID>
</x:Scaling>
<x:Scaling>
<x:ScaleID>37432368</x:ScaleID>
</x:Scaling>
</x:ChartSpace>
</xml>">
eduhf_123 2003-04-01
  • 打赏
  • 举报
回复
收藏
cpio 2003-04-01
  • 打赏
  • 举报
回复
今天用EXCEL插件做出来一个,效果还算不错
cpio 2003-04-01
  • 打赏
  • 举报
回复
我刚才在网上找了找这方面的资料,现在只知道用这个可以实现

不过还远远达不到我的要求,一会儿去图书馆看看有不有这方面的资料
wsj 2003-03-31
  • 打赏
  • 举报
回复
用vml好了

<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv=Content-Type content="text/html; charset=Big5">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>aaa</title>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
<!--[if gte vml 1]><v:line id="_x0000_s1026" style='position:absolute;
z-index:2' from="0px,0px" to="243pt,99pt" coordsize="21600,21600"/><![endif]-->
</body>
</html>
cpio 2003-03-31
  • 打赏
  • 举报
回复
我虽然数学系的,可数学学得真不好,现在不知道怎么入手

所以就请教高手了
nik_Amis 2003-03-31
  • 打赏
  • 举报
回复
up
zhjzh_zjz 2003-03-31
  • 打赏
  • 举报
回复
你这个要用到 计算方法里面的 算法,首先通过这些给定的点,用最小二乘法,然后再利用上面量为给的方法就可以了。你肯定是在学习 计算方法 ,前期工作当然是你自己做咯。我没工夫,不然倒是可以帮你实现。计算方法我学过好几遍,现在对js还算可以,用了近一年。有什么问题可以探讨一下
cpio 2003-03-31
  • 打赏
  • 举报
回复
zhangguagua(瓜瓜) , net_lover(孟子E章),你们两位的程序倒好得很

可与我和目的有些差别,我的意思是在一个XY坐标上给了一些点(几个到几十个,反正不是很多),然后把它们平滑地连起来,形成光滑曲线,zhangguagua(瓜瓜)里面那个坐标图全是两点间用直线连起来的

你们再帮我看看好吗?
cpio 2003-03-31
  • 打赏
  • 举报
回复
大家用过Microsoft Excel呀,里面有个生成图表的东西,它就能达到这样的效果

可是网上这东西不好弄呀,就只好用JS了,可自己又不会写
ac97 2003-03-31
  • 打赏
  • 举报
回复
可以使用贝塞尔曲线,自己上Google查,或者去书店找本计算机图形学的来看看
cpio 2003-03-31
  • 打赏
  • 举报
回复
wsj(骆驼),你这个也只是能画图,不能把任意点连成近似平滑曲线
emu_ston 2003-03-30
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/TopicView1.asp?id=1238516
jsidiot 2003-03-30
  • 打赏
  • 举报
回复
学习收藏
孟子E章 2003-03-30
  • 打赏
  • 举报
回复
可以用vml,svg,flash画出光滑的曲线
<HTML xmlns:v = "urn:schemas-microsoft-com:vml"><HEAD>
<META NAME="Description" CONTENT="VML Animation - Stars">
<META NAME="Keywords" CONTENT="stars,dhtml, vml, javascript, jscript, animation">
<TITLE>VML Animation - Stars</TITLE>
<OBJECT classid=CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E
id=VMLRender></OBJECT>
<STYLE>v\:* {
BEHAVIOR: url(#VMLRender)
}
</STYLE>

</HEAD>
<BODY bgColor=#ffffff onresize=resize() scroll=no>
<v:rect id=bg
style="HEIGHT:400pt;LEFT:0pt;POSITION:absolute;TOP:0pt;WIDTH:880pt;Z-INDEX:-1"
coordsize = "21600,21600"
fillcolor = "#a8f4f7"
strokecolor="#000000">
<v:fill type = "gradient"
color2 = "#003159"
angle = "45"
focus = "100%"
focusposition = ".5,.5"
focussize = "0,0"
method = "linear sigma">
</v:fill>
</v:rect>
<script>

//globals for HSV to RGB conversion
irpnt=new Array(2,1,0,0,3,2);
igpnt=new Array(3,2,2,1,0,0);
ibpnt=new Array(0,0,3,2,2,1);
//
w=0;
h=0;
resize();
scol=new colour(57,.61,.89);
ss=new Array(50,90,75,50,60);
vs="";
for(j=0;j<ss.length;j++){
np=3+rnd(6);
sp=makestarpath(np,1000,900);
hue=rnd(360);
dhue=1+rnd(10);
theta=0;
dtheta=0.1+0.2*Math.random();
dr=rnd(14)-6;if(dr==0)dr=-7;
vx=rnd(10)-4;if(vx==0)vx=-5;
vy=rnd(10)-4;if(vy==0)vy=-5;
vs+="<v:shape id='V"+j+"' np="+np+" hue="+hue+" dhue="+dhue+" dr="+dr+" theta="+theta+" dtheta="+dtheta+" vx="+vx+" vy="+vy+" style='position:absolute;left:"+(6+rnd(w-ss[j]-12))+"px;top:"+(6+rnd(h-ss[j]-12))+"px;height:"+ss[j]+";width:"+ss[j]+";rotation:0;' fill='true' stroke='false' coordsize='2000,2000' coordorigin '0,0' fillcolor='#fdf9ae' strokeweight='2emu' path='"+sp+"'><v:fill type='gradientRadial' color2='#6f6022' angle='45' focus='100%' focusposition='.5,.5' focussize='2,2' method='linear sigma'></v:fill></v:shape>"
}
document.write(vs);

window.setInterval("frame();",20);

function frame(){
for(j=0;j<ss.length;j++){
S=document.all["V"+j];
//animate colour
hue=parseInt(S.hue);
dhue=parseInt(S.dhue);
hue+=dhue;
if(hue>=360)hue-=360;
S.hue=hue;
scol.h=hue;
scol.hsv2rgb();
S.fillcolor=scol.rgb;
//animate rotation
r=parseInt(S.style.rotation);
dr=parseInt(S.dr);
r+=dr;if(r>=360)r-=360;if(r<0)r+=360;
S.style.rotation=r;
//animate geometry
np=parseInt(S.np);
theta=parseFloat(S.theta);
dtheta=parseFloat(S.dtheta);
theta+=dtheta;if(theta>Math.PI)theta-=2*Math.PI;
sp=makestarpath(np,1000,200+1000*Math.sin(theta));
S.path=sp;
S.theta=theta;
//move & bounce stars
x=S.style.pixelLeft;
y=S.style.pixelTop;
vx=parseInt(S.vx);
vy=parseInt(S.vy);
x+=vx;
y+=vy;
if(x<0){vx=-vx;x+=vx;}
if(x>w-ss[j]){vx=-vx;x=2*(w-ss[j])-x;}
if(x>w-ss[j])x=0;
if(x<0)x=0;
if(y<0){vy=-vy;y+=vy;}
if(y>h-ss[j]){vy=-vy;y=2*(h-ss[j])-y;}
if(y>h-ss[j])y=0;
if(y<0)y=0;
S.style.pixelLeft=x;
S.style.pixelTop=y;
S.vx=vx;
S.vy=vy;
}
}

//n=number of points
//r1=outer diameter
//r2=inner diameter
//assumes coordsize='2000,2000' coordorigin '0,0'
function makestarpath(n,r1,r2){
s="";
pa=2*Math.PI/n;
ss1=Math.PI/2;
ss2=ss1-pa/2;
x1=Math.floor(r1*Math.cos(ss1));
y1=Math.floor(-r1*Math.sin(ss1));
x2=Math.floor(r2*Math.cos(ss2));
y2=Math.floor(-r2*Math.sin(ss2));
s="m "+(x2+1000)+","+(y2+1000)+" l ";
for (i=1;i<=n;i++){
if(i>1)s+=","
s+=(x1+1000)+","+(y1+1000)+",";
s1=ss1+i*pa;
s2=ss2+i*pa;
x1=Math.floor(r1*Math.cos(s1));
y1=Math.floor(-r1*Math.sin(s1));
x2=Math.floor(r2*Math.cos(s2));
y2=Math.floor(-r2*Math.sin(s2));
s+=(x2+1000)+","+(y2+1000);
}
s+=" e"
return(s);
}

function rnd(n){
return(Math.floor((n+1)*Math.random()));
}

function resize(){
w=document.body.clientWidth;
h=document.body.clientHeight;
bg.style.width=w;
bg.style.height=h;
}

//utility object for HSV to RGB conversion
function hsv2rgb(){
pqvt=new Array(4);
with(this){
if(s==0){
r=Math.floor(255*v);
g=r;
b=r;
return;
}
if(h>=360)h=0;
nh=h/60;
i=Math.floor(nh);
f=nh-i;
pqvt[2]=255*v;
pqvt[0]=pqvt[2]*(1-s)
pqvt[1]=pqvt[2]*(1-s*f)
pqvt[3]=pqvt[2]*(1-s*(1-f))
r=Math.floor(pqvt[irpnt[i]]);
g=Math.floor(pqvt[igpnt[i]]);
b=Math.floor(pqvt[ibpnt[i]]);
rgb="#"+(65536*r+256*g+b).toString(16);
}
}

function colour(h,s,v){
this.h=h; //0-359
this.s=s; //0-1
this.v=v; //0-1
this.r=0; //0-255
this.g=0; //0-255
this.b=0; //0-255
this.rgb="";
this.hsv2rgb=hsv2rgb;
//convert on construction
this.hsv2rgb();
}

</script>

</BODY></HTML>
加载更多回复(1)

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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