我正在尝试通过处理制作一个彩色方块的 3D 矩阵。它工作正常,但是当我想将其保存到序列化 DataMatrix 对象的文件时,我收到此异常:java.io.NotSerializedException。Square 和 DataMatrix 都实现了可序列化,所以我不知道是什么原因导致的。
文件管理器:
class FileManager
{
FileManager()
{}
public void saveMatrix(String path, DataMatrix dm)
{
try
{
FileOutputStream file = new FileOutputStream(path);
ObjectOutputStream output = new ObjectOutputStream(file);
output.writeObject(dm);
output.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public DataMatrix openMatrix(String path)
{
DataMatrix dm = null;
try
{
FileInputStream file = new FileInputStream(path);
ObjectInputStream input = new ObjectInputStream(file);
Object aux = input.readObject();
input.close();
if(aux instanceof DataMatrix)
{
dm = (DataMatrix)aux;
}
}
catch (EOFException …Run Code Online (Sandbox Code Playgroud) 所以我让我的处理代码在java中运行。但现在我想将它嵌入到我的 GUI 的 JavaFX 中。我怎样才能这样做呢?我尝试使用以下代码,但它似乎不起作用。
package testprocessing;
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import java.awt.Dimension;
import java.util.concurrent.*;
import processing.core.*;
public class JavaFxApplet extends Application {
private PApplet applet = new MyProcessingSketch();
private Dimension appletSize;
@Override public void init() throws ExecutionException, InterruptedException {
applet.init();
FutureTask<Dimension> sizingTask = new FutureTask<>(() ->
applet.getRootPane().getPreferredSize()
);
SwingUtilities.invokeLater(sizingTask);
appletSize = sizingTask.get();
}
@Override public void start(Stage stage) {
final SwingNode swingNode = new SwingNode();
SwingUtilities.invokeLater(() ->
swingNode.setContent(applet.getRootPane())
); …Run Code Online (Sandbox Code Playgroud) 我希望我的对象(此时是一个矩形)跳一次,在上升的过程中失去速度。当它几乎停止时,我希望它在下降的过程中掉头并获得速度。当它再次撞击地面时,它应该停止。当我再次按下该键时,它应该再次执行相同的操作。
我尝试编写的代码实现了一个变量float gravity = 0.75;和一个跟踪速度的变量float speed = 10;
当速度大于 1 时,速度应该被矩形的 Y 坐标减去,然后速度应该变低,因为我将它乘以小于 1 的重力
else if (keyCode == UP|| key == 'w') {
while (speed >1 ) {
playerYPosition = playerYPosition-speed;
speed = speed * gravity;
}
Run Code Online (Sandbox Code Playgroud)
Gravity 高于 1 但为负,因此我 substrakt 的数字在 final 中相加,矩形变小。为了获得速度,速度乘以重力。
gravity = -1.25;
speed = speed * gravity;
playerYPosition = playerYPosition-speed;
Run Code Online (Sandbox Code Playgroud)
速度现在应该在 -1.2 左右......,所以它小于 -1,这while(...)应该可以工作。再次它应该随着时间的推移获得速度,直到它达到起始速度,只是负面的,并以此为起点。
while (speed < -1 && speed > -10) {
playerYPosition = playerYPosition-speed;
speed = …Run Code Online (Sandbox Code Playgroud) 如您所知,P5 坐标系不是从画布中间开始,加上 y 轴翻转我的问题是如何更改 p5 的坐标,使其与笛卡尔坐标系相同
我正在处理一个学校项目(Java 模式)。我们有一张关于游戏应该是什么样子的图片。
所以任务是用正方形创建一个网格。随机方块应该亮红色。如果单击红色方块,它应该将颜色更改为绿色并保持绿色。
我的代码目前的样子:
Square[][] grid;
int cols = 20;
int rows = 20;
void setup() {
size(400, 400);
grid = new Square[cols][rows];
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
grid[i][j] = new Square(i*20, j*20, 20, 20);
}
}
}
void draw() {
background(0);
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
grid[i][j].display();
if (grid[i][j].x<mouseX …Run Code Online (Sandbox Code Playgroud) 当我学习创建循环生成艺术 GIF 的方法时,我遇到了两种不同的制作噪声循环的方法。
Etienne Jacob 在其教程中的示例代码使用 4D OpenSimplex Noise,如下所示。
(float)noise.eval(scl * x, scl * y, R * cos(TWO_PI * t), R * sin(TWO_PI * t));
Daniel Shiffman 在其教程中的示例代码使用 2D Perlin 噪声,如下所示。
噪声(cos(a)+ 1,sin(a)+ 1);
我的理解是,两者都是通过在噪声空间中“绕圈行走”来实现循环的,如上面的 gif 所示。但我不清楚两者之间的区别。选择 4D OpenSimplex 而不是 2D Perlin Noise 来创建循环噪声的目的是什么?
我知道一个等边三角形的中心(cx,cy)和外接它的蓝色圆圈的半径(r)。
如果我画一个任意半径(半径)的绿色圆,假设这个圆足够大有这个交点,我能得到6个交点(P1、P2、P3...)的坐标吗?

我正在寻找 P5JS/processing 但任何其他线索都可以帮助我......
先感谢您
我正在使用Processing语言做一个小游戏,但我遇到图像和旋转问题.如果我没有旋转它,我的精灵显示正常,但如果它旋转它会完全消失.这是轮换代码:
void display(boolean alternate) {
pushMatrix();
if(!isHead && !isTail && alternate) rotate(radians(180));
rotate(radians(90*direction));
image(snake, x, y, linkSize, linkSize);
popMatrix();
}
Run Code Online (Sandbox Code Playgroud)
当direction为0或alternate为真且direction为2时,则显示图像.否则,不显示图像.我不确定它是否重要,但是蛇是具有alpha透明度的.png图像.蛇的宣言是snake = loadImage("SnakeLink.png");.
我试图使用Processing for Android在Java Eclipse中创建一个Android应用程序但是当我要编译它时,我收到此错误消息" MainAcitvity类型的层次结构不一致 ".这是我的代码:
public class MainActivity extends PApplet {
public static void main(String args[])
{
PApplet.main(new String[] { "--present", "com.RDP.MainActivity" });
}
Vector path = new Vector();
public void setup(){
size(550,550, P3D);
smooth();
}
public void draw(){
background(255);
LineSimplifier1 pt;
noFill();
strokeWeight(1);
beginShape();
for (int i=0; i < path.size(); i++)
{
pt = (LineSimplifier1)path.elementAt(i);vertex(pt.x,pt.y);
}
endShape();
strokeWeight(5);
beginShape(POINTS);
for (int i=0; i < path.size(); i++)
{
pt = (LineSimplifier1)path.elementAt(i);vertex(pt.x,pt.y);
}
endShape();
}
public void mousePressed(){ …Run Code Online (Sandbox Code Playgroud) processing ×10
java ×4
p5.js ×3
android ×1
geometry ×1
image ×1
javafx ×1
javascript ×1
netbeans ×1
perlin-noise ×1
physics ×1
rotation ×1
stream ×1
triangle ×1