欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

javascript畫圓,web畫圓

ArcGIS API for JavaScript根據(jù)點(diǎn)坐標(biāo)畫圓

1. 給出一個點(diǎn)的坐標(biāo)和半徑。要求以這個點(diǎn)為圓心,以半徑繪出一個圓圈。并且對特定的2個圖層進(jìn)行查詢,把落入這個圓圈的空間對象標(biāo)記出來,并且可以點(diǎn)擊產(chǎn)生infowindow

東川網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,東川網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為東川成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的東川做網(wǎng)站的公司定做!

解決思路:

a. 先通過GeometryService (幾何服務(wù))繪制出一個buffer的圓。

b. 把這個buffer,也就是一個graphic 放入到 map的graphics中顯示

c. 然后定義一個query ,并且對此 query的geometry 指定為這個 buffer. 這樣所有的查詢結(jié)果就會是:查詢出的空間對象落入這個buffer中。

d.定義一個featureLayer,對這個featureLayer 和 這個query 進(jìn)行 selectFeatures 方法調(diào)用。

e. 對查詢后調(diào)用的函數(shù)中,進(jìn)行每個graphic 設(shè)置 infowindow 和 加入 map的graphic 。

這樣就完成了需求。

/* 以一個map上標(biāo)記的點(diǎn) 為圓心,以指定的半徑標(biāo)記一個圓圈

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;

//根據(jù)指定的顏色和線色進(jìn)行填充。畫出一個圓

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; //指定查詢出的空間對象一定要落在這個圓圈內(nèi)

// 查詢落入buffer層的門板信息點(diǎn)

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) { //對查詢出的結(jié)果進(jìn)行遍歷。把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層的攝像頭信息點(diǎn)

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);

}

});

});

});

};

用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怎樣做出一個畫圓圈的效果啊,比如一張圖片是一個小圓點(diǎn),怎樣讓這個小圓點(diǎn)以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

javascript 插入圓形圖片(或畫實(shí)心圓)

div class="box"img src="" //div

.box{width:200px;height:200px;border-radius:50%;overflow:hidden;}

試試這個結(jié)構(gòu)和對應(yīng)的css,這個應(yīng)該是可以解決的。

怎樣用Javascript畫個實(shí)心圓和計(jì)算器

1、JS畫圓

script type="text/javascript"

//功能:畫實(shí)心圓

//參數(shù):圓心坐標(biāo),半徑,精確度,背景顏色

//主要用到了中學(xué)時(shí)的圓的一些特征公式呵呵

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、計(jì)算器的連加原理其實(shí)和連續(xù)計(jì)算的原理是一樣的,所以,在JS里面一定要定義一個全局變量,不論是加減乘除都調(diào)用這個變量即可。下面是一段完整的計(jì)算器代碼,你可以參考一下,也可以解決你的問題。

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

補(bǔ)充哦,怕在百度hi上給你的留言你看不到呵呵

----------------------------------------

那個圓也是沒有問題的,因?yàn)榻o學(xué)生上課講過這個算法,它有些類似于微積分中圓的面積求法,其實(shí)是將圓沿X軸進(jìn)行細(xì)分,細(xì)分的精度由precision決定,所以,當(dāng)你在這段代碼中將精確降低的話,圓的邊界就很粗糙,把細(xì)分后的每一塊把它看成一個圖形,這樣累加起來,不就組成一個實(shí)習(xí)圓了嘛(截止到這兒,講的是算法問題)。然后呢,代碼的精髓在于那個For循環(huán),(var x=cx-r; x=cx+r; x+=p)表示變量是從圓的最左邊開始的[因?yàn)閳A心cx-半徑r得到最左邊,下同],到最右邊結(jié)束[cx+r],而每次增加多少呢,是由精度控制的[x+=p],然后循環(huán)體內(nèi)的代碼的精髓是圖片的寬度和高度那塊兒,寬度當(dāng)然就等于精度了,高度的那個公式y(tǒng) = sqrt(r^2 - x^2)是畫圓的必備公式,你應(yīng)該明白吧。好了,到此為止,這段代碼的原理和實(shí)現(xiàn)我都說到這兒了,希望你能明白。

文章名稱:javascript畫圓,web畫圓
URL網(wǎng)址:http://chinadenli.net/article20/dsgscco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作移動網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)虛擬主機(jī)營銷型網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)