我需要将像素转换为C#中的Points.我已经看到了关于这个主题的一些复杂的解释,但似乎找不到一个简单的公式.让我们假设一个标准的96dpi,我如何计算这个转换?
当使用ggplot时,我可以设置shape
为21-25来获取具有internal(fill
)和border(col
)颜色的独立设置的形状,如下所示:
df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21)
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何控制形状边框的厚度,无论是绝对设置还是美学映射.我注意到,如果我设置一个lwd
值,它会覆盖size
美学:
ggplot(df, aes(x=x, y=y)) +
geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2)
Run Code Online (Sandbox Code Playgroud)
如何控制边框厚度?
我一直在寻找一个与我的用例相匹配的例子,却找不到一个.我正在尝试将屏幕鼠标坐标转换为考虑到相机的3D世界坐标.
解决方案我发现所有人都做射线交叉以实现对象拾取.
我想要做的是将Three.js对象的中心定位在鼠标当前"结束"的坐标上.
我的相机位于x:0,y:0,z:500(虽然它会在模拟过程中移动)并且我的所有物体都在z = 0时具有不同的x和y值,所以我需要知道基于X,Y的世界假设az = 0表示跟随鼠标位置的对象.
这个问题看起来像一个类似的问题,但没有解决方案:在THREE.js中获取鼠标相对于3D空间的坐标
给定屏幕上的鼠标位置,其范围为"左上角= 0,0 |右下角= window.innerWidth,window.innerHeight",任何人都可以提供将Three.js对象移动到鼠标坐标的解决方案沿z = 0?
我有一条直线(x1,y1)和(x2,y2).我想看看点(x3,y3)是否位于所述线的"左"或"右".我该怎么办?
我想计算二次曲线上的一个点.将它与HTML5的canvas元素一起使用.
当我quadraticCurveTo()
在JavaScript中使用该函数时,我有一个源点,一个目标点和一个控制点.
我怎么能计算出创建的二次曲线上的一个点,让我们说t=0.5
"只"知道这三点?
你能帮我把标签贴在下图上吗?
我使用的代码是:
valbanks<-scan("banks.txt", what=list(0,0,""), sep="", skip=1, comment.char="#")
valbanks
valj2007<-valbanks[[1]]
valj2009<-valbanks[[2]]
namebank<-valbanks[[3]]
percent_losses<-(valj2009-valj2007)/valj2007
percent_losses
abs_losses<-(valj2007-valj2009)
abs_losses
plot(abs_losses, percent_losses,main="Absolute Losses vs. Relative Losses(in%)",xlab="Losses (absolute, in miles of millions)",ylab="Losses relative (in % of January´2007 value",col="blue", pch = 19, cex = 1, lty = "solid", lwd = 2,text(percet_losses, abs_losses,namebank))
text(percet_losses, abs_losses,labels=namebank, cex= 0.7, offset = 10)
Run Code Online (Sandbox Code Playgroud)
而数据是:
Value_Jan_2007 Value_Jan_2009 Bank #
49 16 Morgan_Stanley
120 4.6 RBS
76 10.3 Deutsche_Bank
67 17 Credit_Agricole
80 26 Societé_Generale
91 7.4 Barclays
108 32.5 BNP-Paribas
93 26 …
Run Code Online (Sandbox Code Playgroud) 我需要找到一个点,它是一个不规则形状的多边形的视觉中心.通过视觉中心,我的意思是在视觉上看起来位于多边形的大区域的中心的点.应用程序是在多边形内部放置一个标签.
这是一个使用内部缓冲的解决方案:
如果要使用它,找到缓冲区的有效且快速的方法是什么?如果要使用任何其他方式,这是哪种方式?
真正坚韧的多边形的一个很好的例子是一个巨大的厚U(用Arial Black或Impact或一些这样的字体书写).
我需要为自己的Point类计算两点之间的角度,点a应该是中心点.
方法:
public float getAngle(Point target) {
return (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));
}
Run Code Online (Sandbox Code Playgroud)
测试1://返回45
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(1, 1)));
Run Code Online (Sandbox Code Playgroud)
测试2://返回-90,预期:270
Point a = new Point(0, 0);
System.out.println(a.getAngle(new Point(-1, 0)));
Run Code Online (Sandbox Code Playgroud)
如何将返回的结果转换为0到359之间的数字?
我有一个描述Point的类(有2个坐标x和y)和一个描述Polygon的类,它有一个对应于角的列表(self.corners)我需要检查Point是否在多边形中
这是应该检查多边形中的Point in的函数.我正在使用Ray Casting Method
def in_me(self, point):
result = False
n = len(self.corners)
p1x = int(self.corners[0].x)
p1y = int(self.corners[0].y)
for i in range(n+1):
p2x = int(self.corners[i % n].x)
p2y = int(self.corners[i % n].y)
if point.y > min(p1y,p2y):
if point.x <= max(p1x,p2x):
if p1y != p2y:
xinters = (point.y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
print xinters
if p1x == p2x or point.x <= xinters:
result = not result
p1x,p1y = p2x,p2y
return result
Run Code Online (Sandbox Code Playgroud)
我运行了一个具有以下形状和点的测试:
PG1 = (0,0), (0,2), (2,2), (2,0)
point = (1,1)
Run Code Online (Sandbox Code Playgroud)
即使该行内的点,该脚本也会愉快地返回False.我无法找到错误
我有一个由行和列六边形组成的地图
这不是我正在使用的十六进制映射的实际图像,但使用相同的大小和形状六边形
当用户点击时,我需要能够分辨出哪一个鼠标结束了
每个Hexagon都由一个"Tile"类的实例表示,但是它不包含任何位置特定的数据,甚至不包含多边形,所以基本上唯一的方法就是知道它在特定六边形的位置.二维数组.
之前我使用过方格,并且相对容易确定选择了哪个方格,因为像素也是方形的,
// example where each square is 10 by 10 pixels:
private void getClickedSquare(MouseEvent me)
{
int mouseX = me.getX();// e.g. 25
int mouseY = me.getY();// e.g. 70
int squareX= (int) (mouseX / 10);// in this case 2
int squareY= (int) (mouseY / 10);// in this case 7
//then to access the tile I would do
map.squares[squareX][squareY].whatever();
}
Run Code Online (Sandbox Code Playgroud)
但我甚至不确定从哪里开始使用Hexagons,有没有人有任何经验?
我不能使用多边形(Java),因为当我在屏幕上移动地图并增加它的大小时,我会遇到每帧更新大量多边形的问题.虽然我可以检查地图的任何一个平铺的多边形中是否包含一个点!
目前显示的六边形只是BufferedImages.
如果您想了解更多信息,请询问,谢谢您的时间:D