小编Ric*_*gle的帖子

getter和setter如何工作?

我来自php世界.你能解释一下getter和setter是什么,可以给你一些例子吗?

java getter setter

106
推荐指数
4
解决办法
51万
查看次数

找到两个3D多边形的交集

又称3D中的多边形裁剪算法

又找到2个碰撞多边形之间的碰撞流形

大多数用于多边形裁剪的算法都针对2D进行了详细描述,并且描述为可扩展到3D但没有细节.例如sutherland-hodgman裁剪算法

我无法在互联网上找到任何3D实现或伪代码,我现在在这里问(并试图回答我自己的问题)

该算法将采用两种形状,如下所示: 绿色形状由蓝色形状截去

并输出两个形状的交集,如下所示: 两个形状的交点

请注意,尽管Sutherland-Hodgman算法找到了两个多边形的交集,但它(和大多数其他多边形)在剪切多边形和剪切多边形之间进行了区分.修剪的多边形可以是凹的或凸的,但是修剪的形状必须是凸的.然而,我在扩展到3D时的实现要求两个形状都是凸的,这表明它不是真正的3D sutherland-hodgman算法,并且其他答案(使用任何算法)提升这个要求将非常感激

java intersection clipping polygons collision

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

嵌套的JSF复合组件导致堆栈溢出异常

问题

当我尝试在自身中嵌套复合组件时,使用一些逻辑来结束无限递归,我收到堆栈溢出异常.我的理解是<c:xxx>标签在视图构建时运行,所以我不希望有无限的视图构建,因为我认为是这样的.

这是复合组件 simpleNestable.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:composite="http://java.sun.com/jsf/composite"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:em="http://xmlns.jcp.org/jsf/composite/emcomp"

  xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">

    <h:head>
        <title>This content will not be displayed</title>
    </h:head>
    <h:body>
        <composite:interface>
            <composite:attribute name="depth" required="true" type="java.lang.Integer"/>
        </composite:interface>

        <composite:implementation>
            <c:if test="#{cc.attrs.depth lt 3}">
                 #{cc.attrs.depth}
                 #{cc.attrs.depth+1}
                 <em:simpleNestable depth="#{cc.attrs.depth+1}" /> 

            </c:if>

        </composite:implementation>
    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

这就是它的用法

<h:head>
    <title>Facelet Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <h:outputStylesheet name="./css/default.css"/>
    <h:outputStylesheet name="./css/cssLayout.css"/>
</h:head>
<h:body>        
     <emcomp:simpleNestable depth="1"/>

</h:body>
Run Code Online (Sandbox Code Playgroud)

堆栈溢出异常

java.lang.StackOverflowError
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:2407)
    at com.sun.faces.el.CompositeComponentAttributesELResolver$ExpressionEvalMap.get(CompositeComponentAttributesELResolver.java:393)
    at javax.el.MapELResolver.getValue(MapELResolver.java:199)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) …
Run Code Online (Sandbox Code Playgroud)

stack-overflow jsf nested jstl composite-component

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

扩展一个类,以便可以使用Java将任何父类强制转换为它

我觉得这是不可能的,但如果没有,那将是非常有用的.

我试图以子类只有新方法,没有新构造函数,没有新字段的方式扩展父类.因此子类的基础数据结构与父类相同.当我想为内置的java类(例如Vector3d)提供附加函数时,这往往会发生.鉴于底层数据是相同的,可以以任何方式将初始化为父类的对象向下转换为子类,以便我可以使用添加的功能.作为我的意思的一个例子,见下文

import javax.vecmath.Vector3d;

public class Vector3dPlus extends Vector3d{
    //same fields, same constructors as Vector3d

    public double extraMethod(){
        return x+y+z;
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试使用添加到Vector3d的新方法

import javax.vecmath.Vector3d;     

public class Test {

    public static void main(String[] args) {
        Vector3d basic=new Vector3d(1,2,3);

        useExtraMethod(basic); //this line correctly raises an exception, but is there a way around that
    }

    public static void useExtraMethod(Vector3dPlus plus){
        System.out.println(plus.extraMethod());
    }
}
Run Code Online (Sandbox Code Playgroud)

很明显,java对此感到不安,因为通常我们无法保证Vector3dPlus方法适用于所有方法Vector3d.不过反正是有,我可以对Java的基础数据结构是相同的,因此允许所有所有的向下转换说Vector3dVector3dPlus.

我处理这个问题的当前方法是将所有额外的方法放在一个通用的实用程序类中,但这显然有点可怕

java casting downcast

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

在JMonkey Engine中编辑启动屏幕

我想编辑默认JMonkey项目的启动屏幕,以便我可以用自定义图像(我们的项目徽标)替换显示JMonkey的图像.我是指执行SimpleApplication项目时出现的屏幕.我正在Linux机器上运行JMonkey SDK(Linux Mint 13,如果这很重要)和OpenJDK 7.

java openjdk splash-screen jmonkeyengine

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

创建 MIMO(多输入多输出)传递函数系统,无需对输入和输出的数量进行硬编码

简介
作为更大系统的一部分,我正在尝试创建一个多输入多输出传递函数,该函数仅将输入链接到前导对角线上的输出*。即它在输入 1 和输出 1、输入 2 和输出 2 等之间具有非零传递函数。

*无论你是否真的认为 MIMO 系统是一个公平的评论,我希望它采用这种格式,因为它链接到一个真正是 MIMO 的更大系统。

硬编码
我可以通过连接传递函数来实现这一点

tf1=tf([1 -1],[1 1]);
tf2=tf([1 2],[1 4 5]);
tf3=tf([1 2],[5 4 1]);

G=[tf1 0 0; 0 tf2 0; 0 0 tf3]; 
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但是(a)对输入/输出的数量进行硬编码,并且(b)您拥有的输入和输出越多,就会变得越来越可怕。

Diag 函数
这个问题对于 diag 函数来说似乎很完美,但是 diag 似乎没有为类型 'tf' 定义

G=diag([tf1, tf2, tf3])
??? Undefined function or method 'diag' for input arguments of type 'tf'.
Run Code Online (Sandbox Code Playgroud)

手动矩阵操作
我也尝试手动操作矩阵(并不是我真的希望它起作用)

G=zeros(3);
G(1,1)=tf1;
G(2,2)=tf2;
G(3,3)=tf3;
??? The following error occurred converting from tf to double:
Error using ==> …
Run Code Online (Sandbox Code Playgroud)

matlab control-theory transfer-function

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

带有可选字符的5位数的正则表达式

我正在尝试创建一个正则表达式来验证一个字段,用户可以输入一个5位数字,并可以选择添加一个/后跟3个字母.我已经尝试了以下代码的几个变体:

^(\d{5})+?([/]+[A-Z]{1,3})? 
Run Code Online (Sandbox Code Playgroud)

但我似乎无法得到我想要的东西.

例如,我希望用户输入一个5位数字,例如可以12345选择添加正斜杠,然后添加任意3个字母,例如12345/WFE.

regex

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

如何在图像悬停中显示文本

我有一些缩略图,我想在悬停时在它们上显示一些文本。我可以在悬停时使它们变暗,但不知道如何添加文本。

示例:http : //www.lenzflare.com/video-production-portfolio/

这是我所做的:

    a {
    display: inline-block;
    overflow: hidden;
    position: relative;
    }
    a:hover .play {
    background:url(http://goo.gl/yJqCOR) no-repeat center    center;
    opacity: 0.8;
    position: absolute;
    width: 200px;
    height: 200px;
    left: 50%;
    top: 50%;
    margin-left: -110px;
    margin-top: -150px;
    }

<a href="/">
<div class="play"></div>
<img class="img" src="http://i42.tinypic.com/2v9zuc1.jpg" />
<br />
</a>
Run Code Online (Sandbox Code Playgroud)

演示:http : //jsfiddle.net/jmXdh/79/

html javascript css jquery hover

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

即使使用线程池,多线程的许多短期任务也会变慢

背景

我目前有一个线性物理引擎(但这个问题不需要物理引擎知识),其中一部分我正在尝试多线程,希望提高效率.

一个这样的部分是宽相,在这种情况下,这涉及沿所有3个轴移动所有物体以检查哪个重叠(在所有轴上发生的任何重叠被认为在宽相位中发生碰撞).除了使用普通对象之外,3轴扫描完全独立,因此似乎是多线程的好地方.

为了避免在线程之间阻塞的可能性,这三个进程中的每一个都采用它想要使用的所有数据的本地副本(如果适用)进入多线程

虽然这些扫描是一个重要的瓶颈,但它们非常短暂,扫描通常持续1-4ms.这是一个实时应用程序,其中代码每秒运行60次,因此总滴答时间最长为17ms,因此1-4ms对我来说是很长的时间.因为这些扫描是短暂的,我使用了一个线程池.具体为a Executors.newFixedThreadPool(3),3为3轴.

我的测试计算机是具有超线程的双核心,因此最多4个线程应该是舒适的.检查使用Runtime.getRuntime().availableProcessors();

运行以下测试代码时,使用线程池运行单线程或多线程的多个短期任务,多线程版本要慢得多; 查看资料数据.即使多线程部件没有共同的对象,情况也是如此.为什么这样,有没有办法同时运行许多短期(1-4ms)任务?

即使使任务变得更大,也只会使多线程版本的方法在性能上达到单线程,而不是像我预期的那样超过它,这让我觉得我做错了.

在此输入图像描述

测试代码

public class BroadPhaseAxisSweep implements Callable<Set<PotentialCollisionPrecursor>>  {

    static final int XAXIS=0;
    static final int YAXIS=1;
    static final int ZAXIS=2;

    int axis; 
    int[] axisIndicies;
    boolean[] isStatic;
    boolean[] isLightWeight; 
    boolean[] isCollidable; 

    //orders the same as axisIndicies
    double[] starts;
    double[] ends;

    private static ExecutorService sweepPool = Executors.newFixedThreadPool(3);

    public BroadPhaseAxisSweep(int axis, List<TestObject> allObjects) {
        //all data that will be used by the thread is cached internally to avoid 
        //any concurrent …
Run Code Online (Sandbox Code Playgroud)

java performance multithreading threadpool

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

为多个webroots设置MXUnit(在一个盒子上),以便不需要为MXUnit的位置不断更改首选项

背景

当我们想要创建一个ColdFusion应用程序(在我们的开发环境中,与我的PC分开一个盒子)时,我们设置了一个IIS(互联网信息服务)站点,其中包含构成我们站点的所有CFCs CFM等的物理位置.

据我所知,MXUnit需要在webroot上,测试本身也是如此,所以我创建了mxunit和IIS中的tests文件夹的虚拟目录.我也给这个站点一个绑定(从我的浏览器访问该站点,我也在我的PC上编辑我的主机文件).然后使用提供的wsconfig.exe将它们设置为ColdFusion站点.

为了让MXUnit在Eclipse中工作,我需要设置它在mxunit库中找到RemoteFacade的位置; 这与我的绑定有关.所以我可能会说它的位置是:

http://dev19-site1/mxunit/framework/RemoteFacade.cfc
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然而; 每次我想要为不同的站点运行我的单元测试时,我必须将这些设置更改为

http://dev19-DIFFERENTSITE/mxunit/framework/RemoteFacade.cfc
Run Code Online (Sandbox Code Playgroud)

或者MXunit声称无法找到我的CFC(这是有道理的,因为他们在不同的webroot下)

这有点令人恼火,因为我可能会同时在多个网站上工作.

是否可以设置MXUnit,以便更改我正在处理的特定webroot(但所有在同一个盒子上)并不需要我不断更改MXUnit设置?

coldfusion cfeclipse mxunit

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