- 鞋带定理(Shoelace formula)求2D多边形面积
合肥黑
参考鞋带公式——多边形面积求和GIS算法:利用鞋带定理(Shoelaceformula)求2D多边形面积一、简单解释鞋带公式(Shoelaceformula),也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。该多边形是由它们顶点描述笛卡尔坐标中的平面。用户交叉相乘相应的坐标以找到包围该多边形的区域,并从周围的多边形中减去该区域以找到其中的多边形的区域。之所以称为鞋带公式,是因
- 坐标系中求三角形面积的三种方法(鞋带公式、海伦公式、三角形面积公式)
子木呀
算法与数据结构几何学线性代数三角形面积公式
力扣每日一题:力扣https://leetcode.cn/problems/largest-triangle-area/一、鞋带公式1.1鞋带公式定义Shoelace公式,也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。该多边形是由它们顶点描述笛卡尔坐标中的平面。用户交叉相乘相应的坐标以找到包围该多边形的区域,并从周围的多边形中减去该区域以找到其中的多边形的区域。之所以称为鞋
- GIS算法:利用鞋带定理(Shoelace formula)求2D多边形面积
(๐•̆ ·̭ •̆๐) 熊小安
GIS算法gis
1,实例,运用鞋带定理计算多边形面积笔者在最近的学习中遇到了计算多边形面积这个问题,其中有个鞋带公式比较有趣,于是搜集了一些资料,整理如下:首先参考一个例子,展示如何利用鞋带定理计算多边形面积。我们只需选择一个顶点,然后按照逆时针顺序读取坐标,最后回到起点。并按照类似系鞋带的顺序将坐标串联起来。对于绿色的线链接的坐标直接相乘。红色的相乘;最后把两者相减。重复操作,最后将计算好的数累和得到4+2+3
- 终于!华为在欧盟注册新商标“Harmony”;亚马逊AWS宣布张文翊“新官上任”;甲骨文失去竞购100亿美元国防部云计算合同资格...
CSDN云计算
关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgogogo谷歌打算推出名为“鞋带”(Shoelace)的社交网络应用软件(图片来源网络)【7月15日星期一】云の声音对于5G还是别急,刚开始的5G手机又笨又重,即使只用4G也更耗电;我们会在明年推出5G手机,
- 鞋带公式——多边形面积求和
WaiterXiaoYY
随笔
个人博客:TheBlogOfWaiterXiaoYY欢迎来互相交流学习。啥是鞋带公式(shoelace)Shoelace公式,也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。该多边形是由它们顶点描述笛卡尔坐标中的平面。用户交叉相乘相应的坐标以找到包围该多边形的区域,并从周围的多边形中减去该区域以找到其中的多边形的区域。之所以称为鞋带公式,是因为对构成多边形的坐标进行恒定的交叉
- HDU-2036 Shoelace公式计算多边形面积
DATELOST
hduACM_计算几何
Input输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3usingnamespacestd;inlineintread(){intx=0,f=1;charch=getchar();while(ch>'9'||ch='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}returnx*f;}structp{intx,y;};i
- 使用Web Speech API实现语音文本互转
洒满阳光的午后
web译文
本教程中,我们将尝试使用WebSpeechAPI,这是一个非常强大的浏览器接口,可以用来记录语音并将其转换为文本,同样的,也可以用来朗读字符串。接下来进入正题,这个App应当具有以下几个功能:通过语音录入或者键盘输入的方式保存笔记;将笔记保存到本地;显示历史笔记并可以通过语音朗读笔记;此App无需使用任何花哨的依赖,只需使用jQuery来进行简单的DOM操作,以及Shoelace实现简单的样式,并
- 【瑜伽日记】day202 增加阴瑜伽练习
飞天小毛女
图片发自Appday202昨晚下班回到家,觉得非常疲倦和浑身酸痛。整完娃之后,突然觉得应该练练阴瑜伽。于是铺开垫子,先练了几个开肩,然后练square和shoelace。square练的真的是痛,但也痛的真是爽。练完之后,感觉整个人都轻松了,能量仿佛恢复了。想到之前上阴瑜伽教培课时,老师说,阳瑜伽是提升和发散,而阴瑜伽是收束能量。感觉自己最近一段时间明显缺乏阴,于是今天早上,练完冥想之后,先练了两
- How to tie your shoes [by:姚铭]
you
Step 1.Cross your laces through the holes of your shoes, and make an ‘x’ out of the shoelace by crossing the right lace behind the left lace for each shoe. Just like this:
Step 2. Use your
- linux-0.11硬盘集成盘的制作方法--2
sitelist
fdisklinux-0.11
用到的工具,fdiskchhttp://pan.baidu.com/s/13oTQ2 里面的fdiskch-inlinux.rar既是。fdiskch可以完美的分区后直接用shoelace启动。fdiskch可以说是研究shoelace的副产品。而这个把Image放到分区前面的想法则直接是fdiskch的副产品。启动明显比从软盘启动快。分区的起始扇区是300个扇区处。losetup/dev/loo
- shoelace源代码分析,bochs调试winiboot2,int0x13的算法
sitelist
调试bochsshoelace
fdiskme/dev/hd62-30002chs021b0x7ce7set$eax=0x301 之后0xfc00既是126扇区地方发现了winiboot为什么要用minix下的fdisk分区才能用shoelace启动linux-0.11得以解决!!!14年腊八长达十年悬而未决之谜终于解开,再次证明了实践是检验真理的唯一标准。调试shoelace的winiboot所需的img文件http://v
- shoelace源代码分析,bochs调试winiboot
sitelist
调试bochsshoelace
b0x7c00c到这里是加载的winibootboot: 0x7cb3 push ax |rememberpartition addb al,#ONE |saywhichone call putc mov bx,#m_crlf call puts pop ax movb ah,#partition |
- shoelace源代码分析,bochs调试-67870
sitelist
setupbochsbootsectshoelace67870
在readkernel里面有调用0x67870处的一个call,而0x67870里面有一个jmp9020:0000的跳转,这正是我们要找的,并没有加载完运行startminix()函数,因为那是为启动minix要做的。最后一个断点0x67870b0x6101fcs最后在附上:readkernel的反汇编代码,里面为适应linux-0.11启动而改动的部分加红u/18000060e7e:(
- shoelace源代码分析,bochs调试 readkernel()函数
sitelist
staticinode_nrreadkernelF1(buffer*,bp){ unsignedintbuild_base; /*baseofparametersleftbybuild*/ unsignedintbpsize; /*sizeofunprocessedpartofbp*/ unsignedintbpinx; /*indextounproces
- shoelace源代码分析,bochs调试过程,setup.s 中do_move
sitelist
b0x90200c(0)Breakpoint1,0x90200in??()Nextatt=78352693(0)[0x00090200]9020:0000(unk.ctxt):movax,0x9000 ;b80090u/10000090200:( ):movax,0x9000 ;b8009000090203:(
- shoelace源代码分析,bochs调试过程,setup.s
sitelist
setupbochsshoelace
b0x90200c(0)Breakpoint1,0x90200in??()Nextatt=78342962(0)[0x00090200]9020:0000(unk.ctxt):movax,0x9000 ;b80090u/200x9000000090000:( ):movax,0x7c0 ;b8c00700090003:(
- shoelace源代码分析,bochs调试过程 -- loadbuilt()函数
sitelist
bochsshoelaceloadbuilt
sNextatt=78037287(0)[0x0006091d]6000:091d(unk.ctxt):incsp ;44sNextatt=78037288(0)[0x0006091e]6000:091e(unk.ctxt):leabx,wordptrss:[bp+0xfe62];8d9e62fesNextatt=78037289(0)[0x00060922]6
- shoelace源代码分析,bochs调试过程
sitelist
调试bochsshoelace
第一个断点:b0x10035 c(0)Breakpoint1,0x10035in??()Nextatt=75292653(0)[0x00010035]1000:0035(unk.ctxt):call0x504 ;e8cc04sNextatt=75292654(0)[0x00010504]1000:0504(unk.ctxt):pushbp
- shoelace源代码分析之shoe.c
sitelist
shoelaceshoe.c
_main: pop ax |returnaddress(offset) pop ax |returnaddress(segment) mov cx,#BYTESPERCLICK |clicksize mul cx |makeinto32bitaddress mov di,dx |savea
- shoelace源代码分析之shoebfs -scanzone()函数分析
sitelist
scanzone(zp,ind,len,fn)参数的含义zp逻辑块号, ind=0,1,2,0代表直接块,1代表1次间接块,2代表2次间接块。 len代表每个块里面有几个i节点的个数,这里应该是32 fn是个函数指针 fn=(INODEFN)readshoe) inode_nrscanzoneF4(zone_nr*,zp,int,level,int,n,INODE
- shoelace源代码分析之disktab
sitelist
shoelacedisktab
下面是disktab.doc文件中的一部分说明Thefollowingentriesareused: NameTypeDescription se num Numberofbytespersector ns num Numberofsectorspertrack nt num Numberoftrackspercylinder md num Mediadesc
- shoelace源代码分析之bootlace
sitelist
你可比较一下上面的两个图片,除了shoelace外是一模一样的。第一个图片是img镜像的0x400开始的,第二个图片是bootlace文件的0x20开始的。如果说主引导记录被winiboot覆盖,那么minix分区第一个启动块被bootlace覆盖。对于的命令分别是laceup-w1/dev/hd5和laceup/dev/hd6wini在shoelace.h里面有下面的定义#defineBOOTL
- shoelace源代码分析之winiboot
sitelist
用winhexdump可以看到我们的img文件,也就是硬盘的主引导记录被winiboot覆盖,在0x1fe处有55aa的硬盘启动标志。当然还得有分区表。winboot是由winboot.x汇编文件生成的相当于bootsect文件也就是也要放到硬盘的主引导记录上mbr它的作用是打印硬盘分区信息,选择从哪个分区引导。然后把接力棒交给选择的分区!下面是winiboot.x中的一些关键代码boot:
- 从硬盘用shoelace引导linux-0.11
sitelist
第一步:准备一个img文件,必须的是柱头数为16和磁道扇区数为38。第二步:分区fdisk和mkfs分区,然后把shoelace放到相应的位置。ata0-master:type=disk,path="hdc.img",mode=flat,cylinders=410,heads=16,spt=38/etc/laceup/etc/bootlace/etc/winiboot/etc/config/etc
- linux-0.11调试教程,fdisk for linux-0.11 by chenghao0511
sitelist
csdn下载:http://download.csdn.net/detail/sitelist/5065652fdisk-by-chenghao0511forlinux-0.112014年1月11日更新,fdiskch,第二版,此版本可以使shoelace启动,第二可以以此制作一个把Image放到硬盘分区前面,直接启动系统。http://pan.baidu.com/s/13oTQ2 里面的fdis
- linux-0.11调试教程,安装minix-1.5.10到硬盘(3)安装shoelace后修改/etc/rc文件和更改root密码
sitelist
#Thisfileperformsvarioussysteminitializations.#Initializefiles.>/etc/mtab #createfiletologmounts>/etc/utmp #/etc/utmpkeepstrackoflogins#Mountthefloppydisk./bin/getlf"Pleaseinsert
- Shoelace formula
com_stu_zhang
AlgorithmequalseachMatrixNumbersvariables
FromWikipedia,thefreeencyclopediaTheshoelaceformula,orshoelacealgorithm,isamathematicalalgorithmtodeterminetheareaofasimplepolygonwhoseverticesaredescribedbyorderedpairsintheplane[1].Theusercross-mult
- disktab on OpenBSD
23号
IDEF#CC++C#
阅读更多Shell:/etc>:catdisktab#$OpenBSD:disktab,v1.192006/10/0401:04:22krwExp$#Diskgeometryandpartitionlayouttables.#Key:#dtcontrollertype#tytypeofdisk(fixed,removable,simulated)#d[0-4]drive-type-dependen
- disktab on OpenBSD
23号
C++cF#C#ide
Shell:/etc >: cat disktab # $OpenBSD: disktab,v 1.19 2006/10/04 01:04:22 krw Exp $# Disk geometry and partition layout tables.# Key:# dt &
- disktab on OpenBSD
23号
C++cF#C#ide
Shell:/etc >: cat disktab # $OpenBSD: disktab,v 1.19 2006/10/04 01:04:22 krw Exp $# Disk geometry and partition layout tables.# Key:# dt &
- java Illegal overloaded getter method with ambiguous type for propert的解决
zwllxs
javajdk
好久不来iteye,今天又来看看,哈哈,今天碰到在编码时,反射中会抛出
Illegal overloaded getter method with ambiguous type for propert这么个东东,从字面意思看,是反射在获取getter时迷惑了,然后回想起java在boolean值在生成getter时,分别有is和getter,也许我们的反射对象中就有is开头的方法迷惑了jdk,
- IT人应当知道的10个行业小内幕
beijingjava
工作互联网
10. 虽然IT业的薪酬比其他很多行业要好,但有公司因此视你为其“佣人”。
尽管IT人士的薪水没有互联网泡沫之前要好,但和其他行业人士比较,IT人的薪资还算好点。在接下的几十年中,科技在商业和社会发展中所占分量会一直增加,所以我们完全有理由相信,IT专业人才的需求量也不会减少。
然而,正因为IT人士的薪水普遍较高,所以有些公司认为给了你这么多钱,就把你看成是公司的“佣人”,拥有你的支配
- java 实现自定义链表
CrazyMizzz
java数据结构
1.链表结构
链表是链式的结构
2.链表的组成
链表是由头节点,中间节点和尾节点组成
节点是由两个部分组成:
1.数据域
2.引用域
3.链表的实现
&nbs
- web项目发布到服务器后图片过一会儿消失
麦田的设计者
struts2上传图片永久保存
作为一名学习了android和j2ee的程序员,我们必须要意识到,客服端和服务器端的交互是很有必要的,比如你用eclipse写了一个web工程,并且发布到了服务器(tomcat)上,这时你在webapps目录下看到了你发布的web工程,你可以打开电脑的浏览器输入http://localhost:8080/工程/路径访问里面的资源。但是,有时你会突然的发现之前用struts2上传的图片
- CodeIgniter框架Cart类 name 不能设置中文的解决方法
IT独行者
CodeIgniterCart框架
今天试用了一下CodeIgniter的Cart类时遇到了个小问题,发现当name的值为中文时,就写入不了session。在这里特别提醒一下。 在CI手册里也有说明,如下:
$data = array(
'id' => 'sku_123ABC',
'qty' => 1,
'
- linux回收站
_wy_
linux回收站
今天一不小心在ubuntu下把一个文件移动到了回收站,我并不想删,手误了。我急忙到Nautilus下的回收站中准备恢复它,但是里面居然什么都没有。 后来我发现这是由于我删文件的地方不在HOME所在的分区,而是在另一个独立的Linux分区下,这是我专门用于开发的分区。而我删除的东东在分区根目录下的.Trash-1000/file目录下,相关的删除信息(删除时间和文件所在
- jquery回到页面顶端
知了ing
htmljquerycss
html代码:
<h1 id="anchor">页面标题</h1>
<div id="container">页面内容</div>
<p><a href="#anchor" class="topLink">回到顶端</a><
- B树、B-树、B+树、B*树
矮蛋蛋
B树
原文地址:
http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html
B树
即二叉搜索树:
1.所有非叶子结点至多拥有两个儿子(Left和Right);
&nb
- 数据库连接池
alafqq
数据库连接池
http://www.cnblogs.com/xdp-gacl/p/4002804.html
@Anthor:孤傲苍狼
数据库连接池
用MySQLv5版本的数据库驱动没有问题,使用MySQLv6和Oracle的数据库驱动时候报如下错误:
java.lang.ClassCastException: $Proxy0 cannot be cast to java.sql.Connec
- java泛型
百合不是茶
java泛型
泛型
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,任意化的缺点就是要实行强制转换,这种强制转换可能会带来不安全的隐患
泛型的特点:消除强制转换 确保类型安全 向后兼容
简单泛型的定义:
泛型:就是在类中将其模糊化,在创建对象的时候再具体定义
class fan
- javascript闭包[两个小测试例子]
bijian1013
JavaScriptJavaScript
一.程序一
<script>
var name = "The Window";
var Object_a = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
- 探索JUnit4扩展:假设机制(Assumption)
bijian1013
javaAssumptionJUnit单元测试
一.假设机制(Assumption)概述 理想情况下,写测试用例的开发人员可以明确的知道所有导致他们所写的测试用例不通过的地方,但是有的时候,这些导致测试用例不通过的地方并不是很容易的被发现,可能隐藏得很深,从而导致开发人员在写测试用例时很难预测到这些因素,而且往往这些因素并不是开发人员当初设计测试用例时真正目的,
- 【Gson四】范型POJO的反序列化
bit1129
POJO
在下面这个例子中,POJO(Data类)是一个范型类,在Tests中,指定范型类为PieceData,POJO初始化完成后,通过
String str = new Gson().toJson(data);
得到范型化的POJO序列化得到的JSON串,然后将这个JSON串反序列化为POJO
import com.google.gson.Gson;
import java.
- 【Spark八十五】Spark Streaming分析结果落地到MySQL
bit1129
Stream
几点总结:
1. DStream.foreachRDD是一个Output Operation,类似于RDD的action,会触发Job的提交。DStream.foreachRDD是数据落地很常用的方法
2. 获取MySQL Connection的操作应该放在foreachRDD的参数(是一个RDD[T]=>Unit的函数类型),这样,当foreachRDD方法在每个Worker上执行时,
- NGINX + LUA实现复杂的控制
ronin47
nginx lua
安装lua_nginx_module 模块
lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty
Centos和debian的安装就简单了。。
这里说下freebsd的安装:
fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
ma
- java-递归判断数组是否升序
bylijinnan
java
public class IsAccendListRecursive {
/*递归判断数组是否升序
* if a Integer array is ascending,return true
* use recursion
*/
public static void main(String[] args){
IsAccendListRecursiv
- Netty源码学习-DefaultChannelPipeline2
bylijinnan
javanetty
Netty3的API
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/ChannelPipeline.html
里面提到ChannelPipeline的一个“pitfall”:
如果ChannelPipeline只有一个handler(假设为handlerA)且希望用另一handler(假设为handlerB)
来
- Java工具之JPS
chinrui
java
JPS使用
熟悉Linux的朋友们都知道,Linux下有一个常用的命令叫做ps(Process Status),是用来查看Linux环境下进程信息的。同样的,在Java Virtual Machine里面也提供了类似的工具供广大Java开发人员使用,它就是jps(Java Process Status),它可以用来
- window.print分页打印
ctrain
window
function init() {
var tt = document.getElementById("tt");
var childNodes = tt.childNodes[0].childNodes;
var level = 0;
for (var i = 0; i < childNodes.length; i++) {
- 安装hadoop时 执行jps命令Error occurred during initialization of VM
daizj
jdkhadoopjps
在安装hadoop时,执行JPS出现下面错误
[slave16]
[email protected]:/tmp/hsperfdata_hdfs# jps
Error occurred during initialization of VM
java.lang.Error: Properties init: Could not determine current working
- PHP开发大型项目的一点经验
dcj3sjt126com
PHP重构
一、变量 最好是把所有的变量存储在一个数组中,这样在程序的开发中可以带来很多的方便,特别是当程序很大的时候。变量的命名就当适合自己的习惯,不管是用拼音还是英语,至少应当有一定的意义,以便适合记忆。变量的命名尽量规范化,不要与PHP中的关键字相冲突。 二、函数 PHP自带了很多函数,这给我们程序的编写带来了很多的方便。当然,在大型程序中我们往往自己要定义许多个函数,几十
- android笔记之--向网络发送GET/POST请求参数
dcj3sjt126com
android
使用GET方法发送请求
private static boolean sendGETRequest (String path,
Map<String, String> params) throws Exception{
//发送地http://192.168.100.91:8080/videoServi
- linux复习笔记 之bash shell (3) 通配符
eksliang
linux 通配符linux通配符
转载请出自出处:
http://eksliang.iteye.com/blog/2104387
在bash的操作环境中有一个非常有用的功能,那就是通配符。
下面列出一些常用的通配符,如下表所示 符号 意义 * 万用字符,代表0个到无穷个任意字符 ? 万用字符,代表一定有一个任意字符 [] 代表一定有一个在中括号内的字符。例如:[abcd]代表一定有一个字符,可能是a、b、c
- Android关于短信加密
gqdy365
android
关于Android短信加密功能,我初步了解的如下(只在Android应用层试验):
1、因为Android有短信收发接口,可以调用接口完成短信收发;
发送过程:APP(基于短信应用修改)接受用户输入号码、内容——>APP对短信内容加密——>调用短信发送方法Sm
- asp.net在网站根目录下创建文件夹
hvt
.netC#hovertreeasp.netWeb Forms
假设要在asp.net网站的根目录下建立文件夹hovertree,C#代码如下:
string m_keleyiFolderName = Server.MapPath("/hovertree");
if (Directory.Exists(m_keleyiFolderName))
{
//文件夹已经存在
return;
}
else
{
try
{
D
- 一个合格的程序员应该读过哪些书
justjavac
程序员书籍
编者按:2008年8月4日,StackOverflow 网友 Bert F 发帖提问:哪本最具影响力的书,是每个程序员都应该读的?
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本, 你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数
- 单实例实践
跑龙套_az
单例
1、内部类
public class Singleton {
private static class SingletonHolder {
public static Singleton singleton = new Singleton();
}
public Singleton getRes
- PO VO BEAN 理解
q137681467
VODTOpo
PO:
全称是 persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
BO:
全称是 business object:业务对象 主要作用是把业务逻辑封装为一个对象。这个对
- 战胜惰性,暗自努力
金笛子
努力
偶然看到一句很贴近生活的话:“别人都在你看不到的地方暗自努力,在你看得到的地方,他们也和你一样显得吊儿郎当,和你一样会抱怨,而只有你自己相信这些都是真的,最后也只有你一人继续不思进取。”很多句子总在不经意中就会戳中一部分人的软肋,我想我们每个人的周围总是有那么些表现得“吊儿郎当”的存在,是否你就真的相信他们如此不思进取,而开始放松了对自己的要求随波逐流呢?
我有个朋友是搞技术的,平时嘻嘻哈哈,以
- NDK/JNI二维数组多维数组传递
wenzongliang
二维数组jniNDK
多维数组和对象数组一样处理,例如二维数组里的每个元素还是一个数组 用jArray表示,直到数组变为一维的,且里面元素为基本类型,去获得一维数组指针。给大家提供个例子。已经测试通过。
Java_cn_wzl_FiveChessView_checkWin( JNIEnv* env,jobject thiz,jobjectArray qizidata)
{
jint i,j;
int s