小编Pet*_* O.的帖子

如何保存程序的状态然后加载它?

我正在尝试保存并重新加载我的Swing程序的状态,在这种情况下是一个扫雷游戏.我的董事会代码如下.

package mines;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import java.util.Random;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Board extends JPanel {

    public static void main (String[] args)  {}
    private final int NUM_IMAGES = 13;
    private final int CELL_SIZE = 15;

    private final int COVER_FOR_CELL = 10;
    private final int MARK_FOR_CELL = 10;
    private final int EMPTY_CELL = 0;
    private final int MINE_CELL = 9;
    private final int COVERED_MINE_CELL = MINE_CELL + COVER_FOR_CELL;
    private final …
Run Code Online (Sandbox Code Playgroud)

java swing serialization imageicon

1
推荐指数
1
解决办法
1990
查看次数

获取当前像素后面的像素

我正在用C++编写一个带有过剩的程序,在一个窗口中渲染一个3D模型.我正在使用glReadPixels来获取窗口中显示的风景图像.

而且我想知道如何获得特定像素(x,y),不是直接它的颜色,而是后面的下一个物体的颜色.

如果我渲染一个蓝色三角形,并在它前面有一个红色三角形,glReadPixels会给我红色三角形的红色.

我想知道如何从蓝色三角形中获取颜色,如果红色三角形不在这里,我将从glReadPixels获得颜色.

c++ opengl glut glreadpixels

1
推荐指数
1
解决办法
159
查看次数

解密 C# RIJNDAEL 编码的文本

我正在用 Java 实现与第三方应用程序的通信。作为登录过程的一部分,第三方应用程序正在发送一个加密字符串,我必须对其进行解码并发回。我花了将近 2 天的时间搜索和阅读帖子,但找不到正确的方法来实现这一点。

我有一个测试用例,其中加密字符串是“c1W2YO1vYQzu6czteEidrG0U4g5gT4h57vAlP7tdjcY=”,用密码“GAT”解密后必须返回“101714994”。

我拥有的文档说明了这一点:授权字符串已使用以下设置加密:

  • 输入数据的填充:PKCS*7
  • 密码字节数组长 32 个字节。密码字符串被转换为 UTF-16 编码的字节数组,然后用零填充字节数组,最长可达 32 个字节。较长的密码会被截断。

这是如何解密授权字符串的 C# 示例:

/// <summary> 
/// Decrypts a string. 
/// </summary> 
/// <param name="content">The string to decrypt.</param> 
/// <param name="password">The password to use.</param> 
/// <returns>The decrypted string.</returns> 
private static string DecryptString(string content, string password) { 
    Rijndael aes; 
    byte[] retVal = null; 
    byte[] contentBytes; 
    byte[] passwordBytes; 
    byte[] ivBytes;
    try { 
        //Get the content as byte[] 
        contentBytes = Convert.FromBase64String(content);

        //Create the password and initial vector bytes 
        passwordBytes …
Run Code Online (Sandbox Code Playgroud)

c# java encryption cryptography rijndael

1
推荐指数
1
解决办法
3875
查看次数

我无法使用MinGW在Windows中使用OpenGL渲染多维数据集

我尝试在Windows中使用OpenGL渲染多维数据集.但显示窗口是黑色的.我启用了Z-Buffer,我清除了glClear函数中的深度位等.但没有运气.问题是我遵循的每个示例或文档都是不完整的,或者省略了一些信息,而且我现在非常非常困惑.我不知道我做得对,我做错了什么.

我想要的只是显示一个立方体,知道渲染器已准备好用于3D图形(我可以毫无问题地显示2D图形).没有其他的.

这是我的主程序的代码:

    #include "demo.h"
#include "renderfunc.c"

HDC hDC;
HGLRC hRC;

void enableGL(HWND hWnd)
{

    hDC = GetDC(hWnd);

    int nPixelFormat;
    static PIXELFORMATDESCRIPTOR pfd = {
        sizeof(PIXELFORMATDESCRIPTOR),
        1,
        PFD_DRAW_TO_WINDOW |
        PFD_SUPPORT_OPENGL |
        PFD_DOUBLEBUFFER,
        PFD_TYPE_RGBA,
        24,
        0,0,0,0,0,0,
        0,0,
        0,0,0,0,0,
        32,
        0,
        0,
        PFD_MAIN_PLANE,
        0,
        0,0,0 };

        if(!hDC)
        {
        MessageBox(hWnd,L"Can't Create A GL Device Context.",L"ERROR",MB_OK|MB_ICONEXCLAMATION);
        return;
        }

        nPixelFormat = ChoosePixelFormat(hDC, &pfd);
        if(!nPixelFormat)
        {
        MessageBox(hWnd,L"Can't find a proper Pixel Format.",L"ERROR",MB_OK|MB_ICONEXCLAMATION);
        return;
        }

        SetPixelFormat(hDC, nPixelFormat, &pfd);

        /* Those lines has to be here*/
        hRC = …
Run Code Online (Sandbox Code Playgroud)

c opengl gcc

1
推荐指数
1
解决办法
81
查看次数

奇怪的PHP语法 - $ variable之前的字符串?这是什么?

我在类这样的类中遇到了一段代码:

...
public function __construct(
    PDO $pdo,
    CommonSqlQueries $csq
) {
...
Run Code Online (Sandbox Code Playgroud)

PDO变量之前的字符串是什么意思$pdo?我甚至不知道这种语法是什么,更不用说如何研究它了.

php

1
推荐指数
1
解决办法
89
查看次数

简单的圆圈旋转(模拟运动)

我在Java中有一个简单的动画,它包含一个在窗口移动的轮子.它只是一个从左边开始离开屏幕的普通圆圈,进入并继续向右,直到它离开屏幕.然后它循环并重复这个过程.

X是一个包含车轮位置的变量.它可以在 - (车轮宽度)和窗口尺寸+车轮宽度之间.

我想通过在这个轮子中画一个圆圈来模拟旋转,它围绕圆圈旋转,好像它是连在一起的.

想象一下现实生活中的自行车车轮,车轮上有一面红旗.随着车轮的旋转,当车轮前进时,车轮边缘会出现红旗.这是我想要的行为.

我得到一个百分比来传递到我的轮子类这样:

int percentage = x/windowWidth;
Run Code Online (Sandbox Code Playgroud)

我打电话给车轮移动的每个车架wheel.rotate(percentage).

这是实施:

private int diameter = 50;        
private final int SPOKE_DIAMETER = diameter/5;

    public void rotate(double percent){
        this.percent = percent;
        this.theta = percent*(PI*2);
        System.out.println(percent*PI);
    }

    public void paintComponent(Graphics canvas)
    {
        // wheel
        canvas.setColor(Color.gray);
        canvas.fillOval(0, 0, diameter, diameter);

        // spinning flag
        canvas.setColor(Color.red);
        canvas.fillOval((int)(percent*diameter),(int)((sin((percent*(PI*2)))*diameter)), SPOKE_DIAMETER,SPOKE_DIAMETER);
    }
Run Code Online (Sandbox Code Playgroud)

x位置或多或少地工作我想要的,但是y没有.它像一股浪潮一样摆动,这是预期的(我确实使用了罪......),然而,我不知道如何改变我的数学来跟随周围的圆圈.

我的实施有什么问题?(我用三角函数绘图不是很好)

java math trigonometry

1
推荐指数
1
解决办法
8287
查看次数

如何替换多维数组中的字符串?

如何用新值替换多维数组中的字符串/单词?我没有它的钥匙,只知道大海捞针和针。

假设我有一个多维数组,,$submenu_arr(不知道有多少维)。

我想在这些数组之一中找到一个值并将其替换为新值。

其实是为了翻译。

喜欢:

 recursive_arr_translation('Article', $submenu_arr, 'Artigo');//"Artigo" is a Portuguese word for "Article".
Run Code Online (Sandbox Code Playgroud)

我试过这个,但不起作用:

 function in_array_r($needle, $haystack, $new_value) {
        $found = false;
        foreach ($haystack as $key=>$value) {
        if ($value === $needle) { 
                $found = true; 
                $haystack[$key] = $new_value;
                return true;
            } elseif (is_array($value)) {
                $found = in_array_r($needle, $haystack[$key], $new_value); 
                if($found) { 
                    return true; 
                } 
            }    
        }
        return $found;
    }


in_array_r('Article', $submenu, 'Artigo');
in_array_r('Location', $submenu, 'Localização');
Run Code Online (Sandbox Code Playgroud)

编辑:正在工作,但不知何故,我无法正常工作,我正在尝试翻译 WordPress 子菜单词。

php recursion replace

1
推荐指数
1
解决办法
2607
查看次数

在Android 5的WebView上支持WebGL

我有一个Web项目(取决于WebGL),它适用于计算机,任何浏览器.现在我正在尝试将此项目作为基于Android的手机上的应用程序打开.我使用WebView来实现这一目标.我的手机(Nexus 3)有Android 4.3,而我之前在Android 5之前了解到,WebView组件不支持WebGL.在Android 5中,WebView成为可更新的独立组件,依赖于Chromium版本37(可以更新)并开始支持WebGL.因此,预计我将使用Android 4.3获得错误.

在此之后,我尝试使用另一部手机(三星Galaxy S4搭载Android 5和Chrome版本43).那么应用程序应该运行良好,但仍然在WebView上出错.我试过get.webgl.org仍然是同样的错误:

Error constructing CesiumWidget.

Visit http://get.webgl.org to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers.
Run Code Online (Sandbox Code Playgroud)

详细的错误信息如下:

RuntimeError: The browser supports WebGL, but initialization failed.
Run Code Online (Sandbox Code Playgroud)

错误

at new RuntimeError (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:10657:19)
at new Context (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:96489:19)
at new Scene (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:120928:23)
at new CesiumWidget (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:130986:25)
at AMouseListener.Map2D.initWidget 
Run Code Online (Sandbox Code Playgroud)

这似乎仍然是一个配置问题,所以我试图在Chrome上打开它而不是在WebView上但仍然是同样的错误.我在安装后在Chrome上启用了WebGL.`Firefox工作正常.我有三个问题:

  1. 似乎有什么我做错了,我该如何解决?

  2. Android仍然不支持WebView上的WebGL,是否有任何可能的方法来打开依赖WebGL的应用程序?

  3. 有没有其他方法可以将WebGL项目作为应用程序打开.(我已阅读cordovacocoon.js,但不能肯定是否可以通过这些来完成.)所以,如果有一个工作正常,我宁愿直接去了.

java android google-chrome webgl android-webview

1
推荐指数
1
解决办法
4298
查看次数

在shell脚本中正确使用bc?

我只是试图使用bc乘以一些浮点变量:

#!/bin/bash

a=2.77 | bc
b=2.0  | bc

for cc in $(seq 0. 0.001 0.02)
do
    c=${cc} | bc
    d=$((a * b * c)) | bc
    echo "$d" | bc
done
Run Code Online (Sandbox Code Playgroud)

这不会给我一个输出.我知道这是一个愚蠢的,但我已经尝试了一些bc的组合(在不同的地方管道等)无济于事.

任何帮助将不胜感激!

math bash shell bc

1
推荐指数
1
解决办法
1257
查看次数

为什么4294967295(32位的最高数字)等于-1?

我有这个代码的简单部分:

int pch = name.find("#");
if(pch == name.npos) continue;
Run Code Online (Sandbox Code Playgroud)

当in name.find未找到时"#",pch等于-1.name.npos相反,如果我打印出来,是4294967295为什么在这种情况下,如果pch是-1,name.npos4294967295,程序进入if状态?

c++

1
推荐指数
1
解决办法
7853
查看次数