if(event.getAction() ==MotionEvent.ACTION_DOWN) { if (count==1){ x1 = event.getX(); y1 = event.getY(); System.out.println(count+"count of value a;skd"); Toast.makeText(getApplicationContext(),""+(radius+count),Toast.LENGTH_LONG).show(); Log.i(TAG,"coordinate x1 : "+String.valueOf(x1)+" y1 : "+String.valueOf(y1)); }}else if(event.getAction() ==MotionEvent.ACTION_MOVE){ imageVIEw.setimageBitmap(bmp2); x2 = event.getX(); y2 = event.getY(); posX=(float)(x1+x2)/2; posY=(float)(y1+y2)/2; radius=(float) Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))/2; onDraw(); Toast.makeText(getApplicationContext(),""+radius,Toast.LENGTH_LONG).show();}
嗨,对于仍然需要帮助的人来说.这就是我最终做到的
float h =(float)30.0;
float phi = (float) Math.atan2(y2 - y1,x2 - x1); float angle1 = (float) (phi - Math.PI / 6); float angle2 = (float) (phi + Math.PI / 6); float x3 = (float) (x2 - h * Math.cos(angle1)); float x4 = (float) (x2 - h * Math.cos(angle2)); float y3 = (float) (y2 - h * Math.sin(angle1)); float y4 = (float) (y2 - h * Math.sin(angle2)); c.drawline(x1,y1,x2,y2,pnt); c.drawline(x2,x3,y3,pnt); c.drawline(x2,x4,y4,pnt);
我从stackoverflow中接受的答案和ios部分得到了帮助
解决方法 我如何做到这一点是找到线的斜率,它是在两点(开始和结束)之间绘制的.斜率为(dy / dx),这对你的箭头来说是一个很好的起点.假设您希望箭头的基部垂直于箭头的线,要找到基部的斜率,您将找到该线的斜率的相反倒数.例如,假设你的线的斜率为2.三角形底边的斜率为(-1/2),因为你做(1 /(oldslope))并乘以-1.我不太了解androID,但如果我没记错,在Java中,你会使用drawpolygon方法,你必须指定4个点(3个唯一,1个与第一个相同以关闭它).考虑到尖端底部的斜率,我们可以获得前两个点和最后一个点.在开始绘制箭头的尺寸之前,您应该知道,因此在这种情况下,b将是基线的长度.如果取Θ= arctan(dy / dx),则会在x轴和基线之间产生一个角度.使用该Θ值,您可以执行ydif = b * sin(Θ)以获得箭头的两个基角之间的y值差异.使用xdif = b * cos(Θ)做同样的事情可以得到两个基点之间x值的差异.如果用户绘制的线的最终点的位置是(x1,y1),那么三角形的基点的位置将是(x1-(xdif / 2),y1-(ydif / 2) ))和(x1(xdif / 2),y1(ydif / 2)).这两个点p1和p2是绘制多边形方法中的第一,第二和第四点.要找到第三个点,我们需要通过Θ= arctan(dy / dx)找到原始线的角度,这次使用原始的dy / dx.以这个角度.在我们完成点的实际计算之前,你首先必须知道箭头的尖端实际应该离你的行的末端有多远,在我的情况下,我将使用var h和h = 10. cordinate,(x,y),假设线尖的坐标是(x1,y1)你会做(x1hcosΘ,y1shinθ).将它用于drawpolygon()中的第三个值,您应该完成.对不起,如果我有点匆匆忙忙,我有点厌倦打字,如果你需要帮助就做评论. 总结以上是内存溢出为你收集整理的在android中绘制一个箭头全部内容,希望文章能够帮你解决在android中绘制一个箭头所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)