如何将像素转换为测量html5画布
how to convert pixels into measurement-html5 canvas
如果我的画布反映了一些现实生活中的尺寸,比如8米乘6米,我在它上面画了一条线,我怎么计算这条线在画布上的尺寸呢?也就是说,如果我从位置(x1,y1)画到位置(x2,y2)我测量它并确定它的长度大约是x。也将有可能在运行时显示线下方的测量值,就像我完成线一样,它的长度自动显示在它的底部。我使用简单的画布,只有1绘制线函数与javascript atm。
var linePixelsX = x2-x1;
var linePixelsY = y2-y1;
// horizontal/vertical components of line in pixels
var horizontalMPP = ( m / p );
var verticalMPP = ( m / p );
// horizontal/vertical meters per pixel, p being according canvas measurement in pixels and m being the measurement (in meters) of the area it should represent
var lineMetersX = linePixelsX * horizontalMPP;
var lineMetersY = linePixelsY * verticalMPP;
// calculate horizontal/vertical line components in meters
var lineMetersTotal = Math.SQRT2(lineMetersX*lineMetersX + lineMetersY*lineMetersY);
// Calculate total line length in meters with some Pythagoras
你必须把这条线分成它的水平分量和垂直分量,就好像它是一个矢量。
如果画布的尺寸比例与它应该代表的面积的测量比例(以米为单位)相匹配,则只需计算一次MPP(宽度或高度),并且可以计算不含组件的总线长。
这里有一些简单的缩放数学和向量:)
要在屏幕上显示长度:只需添加'div'或'span'或其他内容,并在其中写入如下行:
HTML:<canvas>
</canvas>
<div id="lengthDiv"></div>
Javascript: function drawLine(){
// All other stuff + what I showed above
document.getElementById('lengthDiv').innerHTML = lineMetersTotal;
// get 'div' by ID and assign your length to innerHTML
}
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- HTML5音频加载和播放获胜'我不能在iPad上工作
- HTML5页面底部棒
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- Is onfling available for html, html5
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 安卓平台上的QWebView HTML5地理位置
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 如何检查用户在html5视频播放器中观看了完整的视频
- 使用具有内联样式的tidy-html5
- 从所有元素中删除HTML5验证
- javascript:将数据库中的数据插入到html5文本字段中
- html5视频中的Youtube类型注释
- HTML5(测量页面加载时间)
- 在Javascript/HTML5中是否有一种好方法来测量字符串的宽度(在渲染时以像素为单位)
- 动画回调架构和时间测量时,使用html5画布
- HTML5 音频流:精确测量延迟
- 使用 html5 测量特定位置和当前位置之间的距离
- 如何将像素转换为测量html5画布