今天需要在网页上画一个图谱,想到用JS,经过学习,和网上搜索,经过整理优化得到下面代码,注意不是用HTML5的canvas,而是用的纯js
复制代码 代码如下:
/* 以下画点,画线,画圆的方法,都不是用HTML5的canvas,而是用的纯js
用到了一些数学的三角函数方法
以下代码是课堂随机写出,没有做更多优化
*/
/*
面向对象封装,添加绘制矩形
进一步优化代码
*/
var Graphics = function(divId, color){
this.divId = divId;
this.color = color; //'#000000'或'black'
this.drawPoint= function(x,y){
//画点
var oDiv=document.createElement('div');
oDiv.style.position='absolute';
oDiv.style.height='2px';
oDiv.style.width='2px';
oDiv.style.backgroundColor=this.color;
oDiv.style.left=x+'px';
oDiv.style.top=y+'px';
//document.body.appendChild(oDiv);
return oDiv;//注意:返回的值是一个dom节点,但并未追加到文档中
};
this.drawLine = function(x1,y1,x2,y2){
//画一条线段的方法。(x1,y1),(x2,y2)分别是线段的起点终点
var x=x2-x1;//宽
var y=y2-y1;//高
var frag=document.createDocumentFragment();
if(Math.abs(y)>Math.abs(x)){//那个边更长,用那边来做画点的依据(就是下面那个循环),如果不这样,当是一条垂直线或水平线的时候,会画不出来
if(y>0)//正着画线是这样的
for(var i=0;i<y;i++){
var width=x/y*i //x/y是直角两个边长的比,根据这个比例,求出新坐标的位置
{
frag.appendChild(drawPoint(width+x1,i+y1));
}
}
if(y<0){//有时候是倒着画线的
for(var i=0;i>y;i--){
var width=x/y*i
{
frag.appendChild(drawPoint(width+x1,i+y1));
}
}
}
}//end if
else {
if(x>0)//正着画线是这样的
for(var i=0;i<x;i++){
var height=y/x*i
{
frag.appendChild(drawPoint(i+x1,height+y1));
}
}
if(x<0){//有时候是倒着画线的
for(var i=0;i>x;i--){
var height=y/x*i
{
frag.appendChild(this.drawPoint(i+x1,height+y1));
}
}
}//end if
}
document.getElementById(this.divId).appendChild(frag);
};
this.drawCircle = function(r, x, y){
//画个圆。x,原点横坐标;y,原点纵坐标;r,半径
var frag=document.createDocumentFragment();
for(var degree=0;degree<360;degree+=2){
var x1=r*Math.sin(degree*Math.PI/180);
var y1=r*Math.cos(degree*Math.PI/180);
frag.appendChild(drawPoint(x+x1,y+y1));
}
document.body.appendChild(frag);
};
this.dragCircle = function(x1,y1,x2,y2){
//拖出一个圆来
var r=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));//求出半径的长 直角三角形中 斜边的平方=两个直边的平方之和
var frag=document.createDocumentFragment();
for(var degree=0;degree<360;degree+=2){//每隔2度画一个点
var x2=r*Math.sin(degree*Math.PI/180);
var y2=r*Math.cos(degree*Math.PI/180);
frag.appendChild(drawPoint(x1+x2,y1+y2));
}
document.getElementById(this.divId).appendChild(frag);
};
this.drawRect = function(startX, startY, lengthX, lengthY, newId, text){
//(startX, startY)起点坐标,lengthX,长 lengthY,宽 newId,新创建的div的Id text,div内容
var myDiv=document.createElement('div');
if(newId){
myDiv.id=newId;
}
myDiv.style.width= lengthX + 'px';
myDiv.style.height= lengthY + 'px';
myDiv.style.backgroundColor = this.color;
myDiv.style.left=startX + 'px';
myDiv.style.top=startY + 'px';
myDiv.style.textAlign= 'center';
if(text){
myDiv.innerHTML = text;
}
document.getElementById(this.divId).appendChild(myDiv);
};
};
window.onload=function(){
var g = new Graphics('div1', 'red');
g.drawLine(500,30,0,30);
g.color = '#CDC9C9';
g.drawRect(10,10,200,200, '', '测试');
}
相关推荐:
ChatGPT回答是空白的背后,究竟隐藏着什么秘密?,如何用ai写作来赚钱
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
文章AI生成标题:让创作更轻松,内容更精彩
“收录量为1”,打造数字化时代的独特竞争力,网站建设页面制作流程
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai
ChatGPT常见问题汇总:解答你关于AI的一切疑惑,松鼠ai智能教适应教育
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
AI提取文章重要内容:让信息抓取更高效、更精准,松鼠ai 教学
SEO经营:助力企业腾飞的秘密武器,靖边百度关键词排名
优化分析:提升企业效益的关键策略,山东大网站建设
OpenAI银联支付-未来支付新体验,安全便捷全新升级,医学加ai
SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广
优化文字,让表达更精准:提升写作效率的关键,个人网站建设外包
ChatGPT免费版下载:智能对话助手带来的全新体验,电脑怎么下载Ai微认证
seo网站是什么找行者SEO,seo分析网站 ,ai图文梅花
SEO要点:提升网站排名的核心技巧与策略,福田市网站建设推广费用
AI文章比对技术:引领写作与内容审核的新革命,ai智能写作小说免费
SEO流程全解析:如何提升网站流量与排名,账号如何营销推广
SEO出超:如何通过精准优化实现网站流量大爆发,营销推广方式联系f火15星
怎么识别是AI写的文章
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
OpenAI无法验证支付方式?解决方案与常见问题解析,你好月光ai
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
GoogleGTP-智能时代的革命性突破,人工智能的新纪元,ai可以降论文ai率吗
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
SEO拓客,让您的业务飞速增长!,密云自适应网站建设
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
ChatGPT安装包Windows版-让智能助手触手可得,q和ai
ChatGPT无法打开?这些解决办法让你重新畅享智能对话!,北大写作ai
OpenAI您的信用卡被拒绝了?请尝试用借记卡支付,轻松解决支付问题!,ai cdr缩略图补丁
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
ChatGPT与讯飞:AI语音与智能对话的完美融合,ai直角变圆角
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
SEO可以帮助网站在搜索引擎中获得较高的排名-助力企业数字化转型的关键,赵立新AI换脸图片对比
seo网站页面优化包括什么,seo页面优化技术 ,no ai写作
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
ChatGPTO1免费:突破智能聊天的极限,体验AI无限可能,糯米ai唱歌
seo项目是什么,seo是啥 ,ai ued
企业SEO:如何通过搜索引擎优化提升企业网络竞争力,安阳网站优化布局设计
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
seo自己做什么,自己做seo需要花钱吗 ,ai850775
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里
seo系列什么意思,seo的分类 ,que n ai je
ChatGPT点不了?背后的真相与解决方法,ai.520523
seo种草什么意思,seo yoo na ,三维地震反演AI
什么是seo发外链,seo外链类型有哪些 ,小小苏ai