Tag: 形状

如何在Android中的图像上创建自定义点击形状?

我想创建一个可点击的图像,我的图像中有一些不同的可点击部分,如下所示: 我想绘制一个自定义的形状,如:A,B,C,D,E,F,并确保当用户点击这件事时。 问题是我没有任何想法,如何创建形状像图像中的形状,确保它只是固定在图像上,在不同的屏幕尺寸不会看到一个混乱的东西。

如何在Java中制作星形?

我正在尝试用Java制作一些形状。 我创建了两个有两种不同颜色的矩形,但我想创建一个星形,我找不到有用的来源来帮助我这样做。 这是我的代码: import java.awt.*; import javax.swing.*; public class shapes extends JPanel{ @Override public void paintComponent(Graphics GPHCS){ super.paintComponent(GPHCS); GPHCS.setColor(Color.BLUE); GPHCS.fillRect(25,25,100,30); GPHCS.setColor(Color.GRAY); GPHCS.fillRect(25,65,100,30); GPHCS.setColor(new Color(190,81,215)); GPHCS.drawString(“This is my text”, 25, 120); } }

如何使用嵌套循环打印出X.

我已经搜索过这个问题的简单解决方案。 我有一个叫做的方法 printCross(int size,char display) 它接受一个大小并打印一个X,其中包含它接收的高度和宽度的char变量。 调用方法printShape(int maxSize, char display)接受形状的最大大小并循环,向printCross方法发送2的倍数,直到达到最大值。 这是我的代码,但它没有给我预期的结果。 public static void drawShape(char display, int maxSize) { int currentSize = 2; //start at 2 and increase in multiples of 2 till maxSize while(currentSize<=maxSize) { printCross(currentSize,display); currentSize = currentSize + 2;//increment by multiples of 2 } } public static void printCross(int size, char display) […]

通过Path2D检测鼠标指针

我构建了一个Path2D ,它表示由直线组成的未闭合形状: 我希望能够检测何时单击鼠标并且鼠标指针靠近路径(在几个像素内)。 使用contains方法不起作用,因为算法将未闭合的形状视为隐式闭合(即通过在起点和终点之间绘制一条直线)。 有谁知道实现这个目标的另一种机制?

如何用摇摆画“生物危害”

我正在为即将到来的测试练习我的挥杆能力,而且油炸让我想到了这样的生物危害标志: alt text http://img62.imageshack.us/img62/8372/lab6b.gif 我可以用Elipse2D绘制圆圈,但是我不知何故需要切割这3个三角形。 我有什么想法可以做到这一点?

使用可变参数绘制星形

我的任务是编写允许用户绘制星星的程序,这些星星的大小和武器数量可能不同。 当我处理基本的星星时,我使用的是GeneralPath和积分表: int xPoints[] = { 55, 67, 109, 73, 83, 55, 27, 37, 1, 43 }; int yPoints[] = { 0, 36, 36, 54, 96, 72, 96, 54, 36, 36 }; Graphics2D g2d = ( Graphics2D ) g; GeneralPath star = new GeneralPath(); star.moveTo( xPoints[ 0 ], yPoints[ 0 ] ); for ( int […]

感知hover在JPanel中的Path2D圆的外边缘

所以,我有一个程序将Path2D圈子绘制到JPanel上。 我想要做的是在用户点击并拖动圆圈的右下角时调整圆圈的大小。 所以,我想要的是检测它们何时位于圆的右下边缘,而不是圆周边界的右下角 。 基本上,我需要弄清楚如何做这样的事情: 我知道如何使用getBounds()对矩形执行此操作,但是当您在圆上使用getBounds()时,它将返回围绕圆的方形而不是实际圆的边界。 关于如何让它发挥作用的任何想法? 谢谢! 这是我的程序的缩短的,可运行的版本: import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Panel; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Ellipse2D; import java.awt.geom.Path2D; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; public class Editor { public static void main(String[] args) { JFrame frame = new UMLWindow(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(30, 30, […]

如何在Java中将转换应用于Polygon对象

我做了一个变换并用它渲染了一个Polygon对象(网格是Polygon类型): at.setToTranslation(gameObject.position.x, gameObject.position.y); at.rotate(Math.toRadians(rotation)); at.scale(scale, scale); g2d.setTransform(at); g2d.fillPolygon(mesh); 现在我想返回我渲染的确切网格,以便我可以对它进行碰撞检查。 唯一的问题是,如果我返回网格,它返回未转换的网格。 所以我尝试将变换设置为Polygon对象(网格),如下所示: mesh = (Polygon)at.createTransformedShape(mesh); 但不幸的是at.createTransformedShape()返回一个只能转换为Path2D.Double的Shape。 所以,如果有人知道如何将Path2D.Double转换为Polygon或知道另一种方式来设置网格的转换请帮助。

Box2D中的ChainShape

我最近开始学习libgdx,我遇到了Box2D的CainShape问题。 我的第一个目标是简单地创建一个带有ChainShape的盒子。 为了实现这一点,我在数组中添加了四个Vector2并使用它们来创建循环。 结果取决于arrays中的排列或沙漏形物体(左上方连接右下方,右上方连接左下方)或错误 表达式:b2DistanceSquared(v1,v2)> 0.005f * 0.005f 这是我到目前为止使用的代码: Vector2[] box = new Vector2[4]; box[1] = new Vector2(0 – bounds.getWidth() / 2 / Main.PPM, 0 – bounds.getHeight() / 2 / Main.PPM); box[0] = new Vector2( bounds.getWidth() / 2 / Main.PPM, 0 – bounds.getHeight() / 2 / Main.PPM); box[2] = new Vector2(0 – bounds.getWidth() / 2 […]

Java中的形状组合?

java Shape接口契约和库例程是否允许将多个形状组合成一个扩展Shape接口的对象? 例如,我可以定义类Flower ,它将由花瓣和核心的几个椭圆组成? 或者Shape只假设一个连续的轮廓? 如果是这样,那么Java中是否存在用于保存多个形状的任何类,可能是某些用于矢量化图形的类?