1. 程式人生 > >html5 canvas學習--移動座標和旋轉座標

html5 canvas學習--移動座標和旋轉座標

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript">
		function drawTop(ctx,fillStyle){
			ctx.fillStyle = fillStyle;
			ctx.beginPath();
			ctx.arc(0,0,30,0,Math.PI,true);
			ctx.closePath();
			ctx.fill();
		}

		function drawGrip(ctx){
			ctx.save();
			ctx.fillStyle="blue";
			ctx.fillRect(-1.5,0,1.5,40);
			ctx.beginPath();
			ctx.strokeStyle="blue";
			ctx.arc(-5,40,4,Math.PI,Math.PI*2,true);
			ctx.stroke();
			ctx.closePath();
			ctx.restore();
		}

		function draw(){
			var ctx = document.getElementById('myCanvas').getContext("2d");
			// 注意所有的移動都是基於這個上下文
			ctx.translate(150,150);
			for(var i=1;i<9;i++){
				ctx.save();
				// 設定旋轉
				ctx.rotate(Math.PI*(2/4+i/4));
				// 設定偏移
				ctx.translate(0,-100);
				// 設定縮放
				ctx.scale(1*(i/8),1*(i/8));
				drawTop(ctx,"rgb("+(30*i)+","+(255-30*i)+",255)");
				drawGrip(ctx);
				ctx.restore();
			}
		}

		window.onload = function(){
			draw();
		}

	</script>
</head>
<body>
	<canvas id="myCanvas" width="700" height="300"></canvas>
</body>
</html>

相關推薦

html5 canvas學習--移動座標旋轉座標

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascr

Html5 canvas學習5-圖形變形:縮放 旋轉 平移 變形

在canvas對當前繪圖物件進行變形時,其中心點是畫布(0,0)的座標原點。 1.縮放 縮放context.scale(x,y) x:x座標軸按x比例縮放   y:y座標軸按y比例縮放 比如1表示不縮放、0.5表示縮小50%、2.3表示放大2.3倍。  &nbs

Revit中如何通過API獲取物件的位置座標旋轉角度

Revit中的基於點的族例項可以旋轉,我們如何獲得旋轉角度呢?談這個問題之前我們綜合的說下Revit物件是如何定位的。Revit物件的定位資訊由2種方式來獲得:1. 最簡單的方法是通過Revit.Location 來獲得。這類物件是族例項(FamilyInstance),包含

Altium怎麼匯出座標利用座標快速佈局教程

器件的座標其實在我們處理佈局的時候,非常有用,例如A板佈局匯入B板。 在A板PCB中執行選單命令“File-Assembly-Generates Pick and Place File”對器件的座標進行匯出。如圖31所示,注意選擇選擇匯出格式和單位。 B板PCB中把所

UE4_第一人稱模版引發的世界座標區域性座標的思考

由第一人稱射擊模板引發的思考: 添加了一個子彈的發射位置Scene,這時候區域性座標的x軸和世界座標的x軸不在同一個方向,產生射線的時候 即便使用如下的節點,產生的射線的forwardVector也是以區域性座標系的x軸為準。 由此就導致了所謂的bug。 (下圖演示了局部座標系和世界

邏輯座標裝置座標的區別

如果我們想製作一個擁有滾動條的應用程式,那就只需要讓你的view類派生自CScrollView類即可,CScrollView類派生自CView類!在初始化view的時候,函式會呼叫CXXView類的OnInitialUpdate()函式(XX表示你的工程名)!函式如下:vo

PIE SDK螢幕座標地圖座標轉換

  1. 功能簡介     螢幕座標和地圖座標轉換,就是字面意思,將電腦螢幕的座標轉換為帶有空間資訊的地圖座標,主要運用PIE SDK地圖控制元件的ToMapPoint()方法,而地圖座標轉換為裝置座標(螢幕),用的是FromMapPoint()方法。 2.功能實現說明

MFC中關於裝置(螢幕)座標邏輯座標

裝置座標(Device Coordinate)又稱為物理座標(Physical Coordinate),是指輸出裝置上的座標。通常將螢幕上的裝置座標稱為螢幕座標。裝置座標用物件距離視窗左上角的水平距離和垂直距離來指定物件的位置,是以畫素為單位來表示的,裝置座標的X軸向右為正

HTML5-註冊頁面(移動電腦端)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html

地理座標投影座標 你必須知道的地理座標系投影座標系

原 你必須知道的地理座標系和投影座標系 置頂 2017年03月24日 17:34:21 ConardLi 閱讀數:32428

HTML 滑鼠座標元素座標

在這一篇文章中,將會介紹滑鼠座標、元素座標以及滑鼠在指定元素內的座標。 1. 滑鼠座標 在觸發滑鼠相關事件時(如:click、mousemove),可以通過事件物件獲取當前滑鼠的座標。 獲取的座標可分為2種: 1) MouseEvent.screenX、MouseEvent.screenY :基於

簡單談視口座標視窗座標

視口和視窗座標在GDI中是有這個概念的,正常情況下,這兩個座標一致,即它們的原點和寬高都是相同的,但是我們可以修改這兩個座標系統來簡單快速實現一些變換操作,如縮放等,首先就必須要理解這兩個座標的概念了,簡答說一句話,即:視口座標(物理座標)的高度寬度是確定顯示區域的,而視窗座

Html5 Canvas 中的save restore

最近在學習html5的canvas,對其中的save 和 restore有一些疑惑  save是儲存一次狀態 這儲存所有的canvas 上下文屬性。例如style, lineWidth等 把這個狀態壓入一個堆疊 restore 恢復上一次save的狀態,從堆疊裡面推出一個

html5 canvas中的屬性方法詳解

建立一個Canvas畫布的方法如下 <canvas id=”canvas” width=”600” height=”400”></canvas> 可以在標籤中新增<canvas>標籤不可用時的替代文字,如下所示: <canv

GDAL python讀取shp進行影像投影座標地理座標的轉換

之前只在網上找到了使用gdal進行tif格式影像的投影座標與地理座標轉換的程式碼,但沒有專門針對shp格式的資料的教程。正巧現在需要用mongodb做向量入庫,建立空間索引(2dshere)時必須用經緯度而不是投影座標,就參考別人的程式碼做了一些修改,實現了sh

根據excellent 自動生成table ,通過輸入開始座標結束座標

自動生成excell的 position 使用場景 使用頁面生成,excell大量單元格,成千上百的量。如果量小就沒必要使用。 要做Excell的table,而且要顯示值,通過給td標籤,新增一個pos

滑鼠事件座標獲取(視窗座標螢幕座標)

本文主要介紹重寫自帶的一些方法,拾取螢幕和視窗座標資訊 效果如下: 分析: 定時服務:在固定一段時間後執行相關的函式方法,例如這裡表示的是在0秒後執行self.giveHelp這個方法 QTimer.singleShot(0, s

Qt全域性座標相對座標

QMouseEvent中兩類座標系統,一類是視窗座標,一類是顯示器座標。1、QPoint QMouseEvent::pos()       這個只是返回相對這個widget(過載了QMouseEvent的widget)的位置。       const Returns the position of the m

html5 canvas學習--繪製文字

1.繪製填充文字:context.fillText(text,x,y,[maxWidth]) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&g

簡單的頂點著色(根據模型座標世界座標位置)

Shader "Custom/test1" { SubShader { pass { CGPROGRAM #pr