草庐IT

canvas2d

全部标签

Java2D : interaction between XWindows events and frame rate

我在Linux/XWindows上的简单Java2D应用程序中遇到系统事件和窗口刷新率之间的意外交互。下面的小示例可以很好地证明这一点。这个程序创建了一个小窗口,其中半圆以不同的旋转度显示。图形以每秒60帧的速度更新,以产生闪烁的显示。这是通过BufferStrategy实现的,即调用其show方法。但是,我注意到当我(a)将鼠标移到窗口上以便窗口接收鼠标悬停事件或(b)按住键盘上的某个键以便窗口接收键盘事件时,闪烁会增加可见。因为调用BufferStrategy.show()的速率不受这些事件的影响,从控制台上的打印输出可以看出(它们应该始终保持在60fps左右).但是,更快的闪烁表

java - Android 缩放/转换 Canvas 不会修改可点击区域

我有一个非常相似的问题describedhere,除了不使用ScaleAnimation,我允许在我的RelativeLayout中捏缩放/平移。缩放/平移效果完美,但无论我的View如何平移/缩放,可点击区域都不会随着视觉表示而改变。这是我的dispatchTouchEvent的样子:@OverridepublicbooleandispatchTouchEvent(MotionEventev){if(mScaleGestureDetector!=null&&mGestureDetector!=null){mScaleGestureDetector.onTouchEvent(ev);m

小程序将页面转为图片--Wxml2Canvas

如果需要实现将小程序的页面转为图片,第一步是要先把页面转为canvas,再将canvas转为图片。本人使用的是Wxml2Canvas这个插件。其实最开始使用的是wxml-to-canvas这个官方自带的组件。由于这个组件坑太多,本地调试一切正常,但是到了真机调试就会出现创建画布失败的情况,寻找了很久,最多的方法方法就是添加延时器,或者画布的高度设置在1000px以内。但是都没有什么鬼用,最终无可奈何,只能换个插件,重新写。好惨一男的😥那我们废话不多说,准备开始搞事情!!第一步安装插件注意安装之后别忘了构建npmnpminstallwxml2canvas第二步引入import Wxml2Canv

java - 在 Mapbox map Canvas 上自定义绘图

我希望能够使用androidsdk在mapboxmap上手动绘制复杂的形状。我已经继承了mapView类并覆盖了ondraw事件,但不幸的是,无论我绘制什么,都会被map本身覆盖。例如,我需要能够在其他复杂形状中绘制具有菱形边框的多边形。这在GoogleMaps中使用自定义图block提供程序并覆盖ondraw没有问题。这是我目前唯一的mapbox代码:@OverridepublicvoidonDraw(Canvascanvas){super.onDraw(canvas);Paintstroke=newPaint();stroke.setColor(Color.BLACK);strok

java - 使用 Canvas 在 Java 中绘图

我想在Java的Canvas中绘图,但无法让它工作,因为我不知道我在做什么。这是我的简单代码:importjavax.swing.JFrame;importjava.awt.Canvas;importjava.awt.Graphics;importjava.awt.Color;publicclassProgram{publicstaticvoidmain(String[]args){JFramefrmMain=newJFrame();frmMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frmMain.setSize(400,40

java - 3D 空间 (x,y,z) 中点的透视投影 : determine the 2D screen coordinates (x, y)

我想确定3D空间(x,y,z)中点的2D屏幕坐标(x,y)。我希望投影的点是由GPS坐标和海拔高度表示的真实世界点。例如:点(纬度:49.291882,经度:-123.131676,高度:14m)相机位置和高度也可以确定为x,y,z点。我还有相机的航向(罗盘度数)、倾斜度(高于/低于地平线)和滚动(围绕z轴)。我没有3D编程的经验,因此,我阅读了透视投影的主题,了解到它需要矩阵、变换等知识——所有这些目前让我完全困惑。有人告诉我,OpenGL可用于构建真实世界点的3D模型、设置相机方向并检索3D点的2D坐标。但是,我不确定使用OpenGL是否是解决此问题的最佳方案,即使是我也不知道如何

java - Rectangle 和 Rectangle2D 的区别

目前,我使用Rectangle和Rectangle2D(Rectangle2D.Double)互换。我想知道在选择正确的数据类型时我应该考虑什么?除了Rectangle(Rectangle2D的子类)有更多的API函数外,我没有看到任何明显的区别。谢谢。 最佳答案 矩形使用int坐标。Rectangle2D是一个抽象类,它不关心您使用的是int、double还是float坐标。如果您需要double和float的更高精度,则必须使用Rectangle2D。Rectangle2D是基类,因此如果您正在编写以抽象方式对矩形形状进行操作的

java - 旋转 Java Graphics2D 矩形?

我到处找,就是找不到答案。如何在java中旋转矩形?这是我的一些代码:packagenet.chrypthic.Space;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassSpaceextendsJPanelimplementsActionListener{Timertime;publicSpace(){setVisible(true);setFocusable(true);addMouseMotionListener(newML());addMouseListener(newML());ad

Java 2D 游戏图形

下学期我们有一个关于团队制作Java应用程序的模块。该模块的要求是制作游戏。圣诞节假期我一直在练习,但我想不出绘制图形的最佳方法。我正在使用JavaGraphics2D对象在屏幕上绘制形状,并且每秒调用repaint()30次,但这闪烁得非常厉害。有没有更好的方法在Java中绘制高性能二维图形? 最佳答案 你想要做的是创建一个带有BufferStrategy的Canvas组件并渲染它,下面的代码应该向你展示它是如何工作的,我已经从我自己编写的引擎中提取了代码here.性能完全取决于你想画的东西,我的游戏主要使用图像。在480x480

java - Graphics2D : Drawing black on white?

我确定这是一个非常愚蠢的问题,但我找不到答案,我没有使用Java2DAPI的经验。我正在尝试创建一个图像并将其写入GIF或PNG,我希望它在白色背景上使用黑色钢笔。如果我不设置任何颜色,我会得到黑底白字。如果我使用setPaint()(用于后续绘制操作),我会用该颜色重新绘制整个Canvas。以下示例将整个内容呈现为黑色。该示例是在Scala中编写的,但您明白了。欢迎使用Java回答!valbi=newBufferedImage(200,400,BufferedImage.TYPE_BYTE_BINARY)valg=bi.createGraphicsg.setBackground(Co