本篇文章给大家谈谈javascript画圆,以及js画一个圆对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、怎么在图片上画圆网页代码2、ArcGIS API for JavaScript根据点坐标画圆3、怎样用Javascript画个实心圆和计算器4、JavaScript怎样做出一个画圆圈的效果啊,比如一张图片是一个小圆点,怎样让这个小圆点以20p5、d3.js画圆弧和圆的坐标、弧长计算方法6、用js简单的画个圆
怎么在图片上画圆网页代码
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
第一步:实现思路。
1、在页面上引入图片,将图片放入到一个div标签中,将div的大小和图片设置一致
2、借助于jquery的画圆工具在div上画圆,视觉上达到影响图片的效果
2
第二步:下载jquery.min.js包。
第二步:下载jquery具体操作方法,再百度或搜狗浏览器中输入“jquery下载”点击搜索按钮–》得到查询结果进入下载界面–》
第二步:编辑代码。
打开编辑工具–引入jquery–编写代码,具体如下所示:
!DOCTYPE html
html
head
meta charset=”UTF-8″
title画圆/title
style
#drawing {
width: 500px;
height: 500px;
border:1px solid;
position: relative;
overflow: hidden;
}
.circle {
background-color: green;
position: absolute;
}
/style
script src=”js/jquery-3.3.1.js”/script
script
$(document).ready(function() {
// 圆
var $circle = null;
// 画布
var $drawing = $(“#drawing”);
// 圆心位置
var centerX = 0;
var centerY = 0;
// 是否正在画圆
var isDrawing = false;
// 按下鼠标开始画圆
$drawing.mousedown(function(event) {
$circle = $(‘div/div’);
centerX = event.pageX – $drawing.offset().left;
centerY = event.pageY – $drawing.offset().top;
$(this).append($circle);
isDrawing = true;
event.preventDefault();
});
// 鼠标拖动
$(document).mousemove(function(event) {
if(isDrawing) {
var radiusX = Math.abs(event.pageX – $drawing.offset().left – centerX);
var radiusY = Math.abs(event.pageY – $drawing.offset().top – centerY);
var radius = Math.sqrt(radiusX * radiusX + radiusY * radiusY); // 半径,勾股定理
// 下面四个条件判断是限制圆不能超出画布区域,如果不需要这个限制可以去掉这段代码
if(centerX – radius 0) {
radius = centerX;
}
if(centerY – radius 0) {
radius = centerY;
}
if(centerX + radius $drawing.width()) {
radius = $drawing.width() – centerX;
}
if(centerY + radius $drawing.height()) {
radius = $drawing.height() – centerY;
}
// 设置圆的大小和位置
$circle.css(“left”, centerX – radius + “px”);
$circle.css(“top”, centerY – radius + “px”);
$circle.css(“width”, 2 * radius + “px”);
$circle.css(“height”, 2 * radius + “px”);
$circle.css(“border-radius”, radius + “px”);
}
});
// 鼠标松开停止画圆
$(document).mouseup(function() {
isDrawing = false;
});
});
/script
/head
body
div id=”drawing”
img width=”502px;” height=”502px;” src=”img/cartoon/火影.jpg” /
/div
/body
/html
第四步:测试。
1、打开页面,页面展示一张火影图片
2、左键单击,按住拉,以左键第一次点击位置为中心向外延伸出一个圆
3、重新刷新页面,图片恢复原样。
ArcGIS API for JavaScript根据点坐标画圆
1. 给出一个点的坐标和半径。要求以这个点为圆心,以半径绘出一个圆圈。并且对特定的2个图层进行查询,把落入这个圆圈的空间对象标记出来,并且可以点击产生infowindow
解决思路:
a. 先通过GeometryService (几何服务)绘制出一个buffer的圆。
b. 把这个buffer,也就是一个graphic 放入到 map的graphics中显示
c. 然后定义一个query ,并且对此 query的geometry 指定为这个 buffer. 这样所有的查询结果就会是:查询出的空间对象落入这个buffer中。
d.定义一个featureLayer,对这个featureLayer 和 这个query 进行 selectFeatures 方法调用。
e. 对查询后调用的函数中,进行每个graphic 设置 infowindow 和 加入 map的graphic 。
这样就完成了需求。
/* 以一个map上标记的点 为圆心,以指定的半径标记一个圆圈
do buffer
*/
sky.gis.Context.prototype.doBuffer = function (point,buffer_radius,lineColor,lineWidth,fillColor,infoWidth,infoHeight,url)
{
var infoTemplate = new esri.InfoTemplate();
infoTemplate.setTitle();
infoTemplate.setContent(“iframe src=${iframe_url} height=”+infoHeight+” width=”+infoWidth+””);
_map.infoWindow.resize(infoWidth, infoHeight);
//setup the buffer parameters
var bufferParams = new esri.tasks.BufferParameters();
bufferParams.geometries = [ point ];
bufferParams.distances = [ buffer_radius ];
bufferParams.outSpatialReference = self._map.spatialReference;
// bufferParams.unit = esri.tasks.GeometryService.esriDecimalDegrees;
bufferParams.unit = esri.tasks.GeometryService.esriMeters;
self.gsvc.buffer(bufferParams,function showBuffer(buffers)
{ //做buffer处理
dojo.forEach(buffers, function(b) {
var bufferGeometry = b;
//根据指定的颜色和线色进行填充。画出一个圆
var sfs = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,
new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,lineColor, lineWidth),
fillColor
);
var graphic = new esri.Graphic(bufferGeometry, sfs);
if (graphic.attributes == null)
{
graphic.attributes = new Object();
graphic.attributes.iframe_url = new Object();
console.debug(graphic.attributes.iframe_url);
}
graphic.attributes.iframe_url = url;
// graphic.setInfoTemplate(infoTemplate); //可以指定这个圆圈的infowindow
self._map.graphics.add(graphic); //把这个圆圈显示出来
//开始查询
var query = new esri.tasks.Query();
query.geometry = bufferGeometry; //指定查询出的空间对象一定要落在这个圆圈内
// 查询落入buffer层的门板信息点
self._bufferFeatureLayer = new esri.layers.FeatureLayer(infoLayerURL,
{
mode: esri.layers.FeatureLayer.MODE_SELECTION,
outFields: [“*”]
});
self._bufferFeatureLayer.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW, function(results){
dojo.forEach(results,function(result) { //对查询出的结果进行遍历。把graphic 放入map的graphics中
var graphic = result;
symbol = new esri.symbol.PictureMarkerSymbol(‘./imgs/infos.jpeg’, 32, 32);
graphic.setInfoTemplate(infoTemplate);
graphic.setSymbol(symbol);
self._map.graphics.add(graphic);
});
});
// 查询落入buffer层的摄像头信息点
self._bufferFeatureLayer = new esri.layers.FeatureLayer(cameraLayerURL,
{
mode: esri.layers.FeatureLayer.MODE_SELECTION,
outFields: [“*”]
});
self._bufferFeatureLayer.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW, function(results){
for ( var i = 0; i results.length; i++) {
var graphic = results[i];
symbol = new esri.symbol.PictureMarkerSymbol(‘./imgs/camera.gif’, 32, 32);
graphic.setInfoTemplate(infoTemplate);
graphic.setSymbol(symbol);
self._map.graphics.add(graphic);
}
});
});
});
};
怎样用Javascript画个实心圆和计算器
1、JS画圆
script type=”text/javascript”
//功能:画实心圆
//参数:圆心坐标,半径,精确度,背景颜色
//主要用到了中学时的圆的一些特征公式呵呵
function SolidCircle(centreX, centreY, radius, precision, color){
var cx = Math.abs(parseInt(centreX));
var cy = Math.abs(parseInt(centreY));
var r = parseInt(radius2 ? 60 : radius);
var p = parseInt(precision1 ? 1 : precision);
var c = color;
var y;
for(var x=cx-r; x=cx+r; x+=p){
y = cy – Math.sqrt(Math.pow(r, 2) – Math.pow(cx – x, 2));
document.write(‘img style=”background:’+c+’; border:1 solid ‘+c+’; width:’+p+’; height:’+parseInt(2*Math.sqrt(Math.pow(r, 2) – Math.pow(cx – x, 2)))+’; position:absolute; top:’+parseInt(y)+’; left:’+parseInt(x)+’;”‘);
}
//alert(“一共有 ” + document.all.length + ” 个 img”);
}
SolidCircle(450, 100, 100, 1, “green”);
/script
2、计算器的连加原理其实和连续计算的原理是一样的,所以,在JS里面一定要定义一个全局变量,不论是加减乘除都调用这个变量即可。下面是一段完整的计算器代码,你可以参考一下,也可以解决你的问题。
FORM name=”Keypad” action=””
TABLE
B
TABLE border=2 width=50 height=60 cellpadding=1 cellspacing=5
TR
TD colspan=3 align=middle
input name=”ReadOut” type=”Text” size=24 value=”0″ width=100%
/TD
TD
/TD
TD
input name=”btnClear” type=”Button” value=” C ” onclick=”Clear()”
/TD
TDinput name=”btnClearEntry” type=”Button” value=” CE ” onclick=”ClearEntry()”
/TD
/TR
TR
TD
input name=”btnSeven” type=”Button” value=” 7 ” onclick=”NumPressed(7)”
/TD
TD
input name=”btnEight” type=”Button” value=” 8 ” onclick=”NumPressed(8)”
/TD
TD
input name=”btnNine” type=”Button” value=” 9 ” onclick=”NumPressed(9)”
/TD
TD
/TD
TD
input name=”btnNeg” type=”Button” value=” +/- ” onclick=”Neg()”
/TD
TD
input name=”btnPercent” type=”Button” value=” % ” onclick=”Percent()”
/TD
/TR
TR
TD
input name=”btnFour” type=”Button” value=” 4 ” onclick=”NumPressed(4)”
/TD
TD
input name=”btnFive” type=”Button” value=” 5 ” onclick=”NumPressed(5)”
/TD
TD
input name=”btnSix” type=”Button” value=” 6 ” onclick=”NumPressed(6)”
/TD
TD
/TD
TD align=middleinput name=”btnPlus” type=”Button” value=” + ” onclick=”Operation(‘+’)”
/TD
TD align=middleinput name=”btnMinus” type=”Button” value=” – ” onclick=”Operation(‘-‘)”
/TD
/TR
TR
TD
input name=”btnOne” type=”Button” value=” 1 ” onclick=”NumPressed(1)”
/TD
TD
input name=”btnTwo” type=”Button” value=” 2 ” onclick=”NumPressed(2)”
/TD
TD
input name=”btnThree” type=”Button” value=” 3 ” onclick=”NumPressed(3)”
/TD
TD
/TD
TD align=middleinput name=”btnMultiply” type=”Button” value=” * ” onclick=”Operation(‘*’)”
/TD
TD align=middleinput name=”btnDivide” type=”Button” value=” / ” onclick=”Operation(‘/’)”
/TD
/TR
TR
TD
input name=”btnZero” type=”Button” value=” 0 ” onclick=”NumPressed(0)”
/TD
TD
input name=”btnDecimal” type=”Button” value=” . ” onclick=”Decimal()”
/TD
TD colspan=3
/TD
TD
input name=”btnEquals” type=”Button” value=” = ” onclick=”Operation(‘=’)”
/TD
/TR
/TABLE
/TABLE
/B
/FORM
/CENTER
font face=”Verdana, Arial, Helvetica” size=2
SCRIPT LANGUAGE=”JavaScript”
!– Begin
var FKeyPad = document.Keypad;
var Accum = 0;
var FlagNewNum = false;
var PendingOp = “”;
function NumPressed (Num) {
if (FlagNewNum) {
FKeyPad.ReadOut.value = Num;
FlagNewNum = false;
}
else {
if (FKeyPad.ReadOut.value == “0”)
FKeyPad.ReadOut.value = Num;
else
FKeyPad.ReadOut.value += Num;
}
}
function Operation (Op) {
var Readout = FKeyPad.ReadOut.value;
if (FlagNewNum PendingOp != “=”);
else
{
FlagNewNum = true;
if ( ‘+’ == PendingOp )
Accum += parseFloat(Readout);
else if ( ‘-‘ == PendingOp )
Accum -= parseFloat(Readout);
else if ( ‘/’ == PendingOp )
Accum /= parseFloat(Readout);
else if ( ‘*’ == PendingOp )
Accum *= parseFloat(Readout);
else
Accum = parseFloat(Readout);
FKeyPad.ReadOut.value = Accum;
PendingOp = Op;
}
}
function Decimal () {
var curReadOut = FKeyPad.ReadOut.value;
if (FlagNewNum) {
curReadOut = “0.”;
FlagNewNum = false;
}
else
{
if (curReadOut.indexOf(“.”) == -1)
curReadOut += “.”;
}
FKeyPad.ReadOut.value = curReadOut;
}
function ClearEntry () {
FKeyPad.ReadOut.value = “0”;
FlagNewNum = true;
}
function Clear () {
Accum = 0;
PendingOp = “”;
ClearEntry();
}
function Neg () {
FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
}
function Percent () {
FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
}
// End —
/SCRIPT
补充哦,怕在百度hi上给你的留言你看不到呵呵
—————————————-
那个圆也是没有问题的,因为给学生上课讲过这个算法,它有些类似于微积分中圆的面积求法,其实是将圆沿X轴进行细分,细分的精度由precision决定,所以,当你在这段代码中将精确降低的话,圆的边界就很粗糙,把细分后的每一块把它看成一个图形,这样累加起来,不就组成一个实习圆了嘛(截止到这儿,讲的是算法问题)。然后呢,代码的精髓在于那个For循环,(var x=cx-r; x=cx+r; x+=p)表示变量是从圆的最左边开始的[因为圆心cx-半径r得到最左边,下同],到最右边结束[cx+r],而每次增加多少呢,是由精度控制的[x+=p],然后循环体内的代码的精髓是图片的宽度和高度那块儿,宽度当然就等于精度了,高度的那个公式y = sqrt(r^2 – x^2)是画圆的必备公式,你应该明白吧。好了,到此为止,这段代码的原理和实现我都说到这儿了,希望你能明白。
JavaScript怎样做出一个画圆圈的效果啊,比如一张图片是一个小圆点,怎样让这个小圆点以20p
!DOCTYPE html
html lang=”en”
head
meta charset=”UTF-8″
title画圆/title
script src=””/script
/head
body
div id=”holder”/div
script
var paper = Raphael( “holder”, 400, 400 );
var circle = paper.circle(200, 200, 150); // 从200,200 开始画一个半径150的圆
circle.attr(“fill”, “#f00”); //并用红色填充
/script
/body
/html
d3.js画圆弧和圆的坐标、弧长计算方法
svg路径画圆的特性:(rx ry x-axis-rotation large-arc-flag sweep-flag x y)。
rx,ry: 是椭圆的两个半轴的长度。
x-axis-rotation: 是椭圆相对于坐标系的旋转角度,角度数而非弧度数。
large-arc-flag: 是标记绘制大弧(1)还是小弧(0)部分。
sweep-flag: 是标记向顺时针(1)还是逆时针(0)方向绘制。
x,y: 是圆弧终点的坐标。
已知两点和半径求弧路径。
已知圆上两点和半径求弧长。
已知圆上的y轴半径和圆心求相交的x轴坐标。
已知圆上的x轴半径和圆心求y轴坐标。
用js简单的画个圆
var c=document.getElementById(“myCanvas”);
var cxt=c.getContext(“2d”);
cxt.fillStyle=”#FF0000″;
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fill();
javascript画圆的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于js画一个圆、javascript画圆的信息别忘了在本站进行查找喔。