English 中文(简体)
图形代码中的处理分数为零
原标题:Handling division by zero in graphics code

我在撰写一个程序图像生成图书馆(Clisk ),使用户能够定义自己的数学功能来生成图像。

显然,它们有可能界定一个功能,使某些像素,例如(假体码)的分差为零。

red = 1.0 / (xposition - 0.5)

如果xposition = 0.5(图像中间),则结果会以零除以零。

最理想的情况是,我不想让图像生成崩溃... 但与此同时,我不想制造一个阴险的黑客 忽视零分的鸿沟 这会在以后造成问题

在处理这些案件时,什么是良好、有力、系统的办法?

最佳回答

最理想的情况是,我不想让图像生成崩溃... 但与此同时,我不想制造一个阴险的黑客 忽视零分的鸿沟 这会在以后造成问题

(我假设你的意思是 片段是一个例子 一些用户提供的代码... )

显然,如果用户提供的代码可以提出例外,那么你不能阻止这种情况发生。 (在分部之前检查的建议显然与你无关......)

您除了“ 崩溃” 还能做什么? 生成空图像吗? 忽略用户的函数? 您正在生成垃圾..., 而用户的需求并非如此 。

您当然无法触及和修补他的 / 她的 java 代码 。 (如果该片段是用某种自定义语言撰写的代码, 那么您也无法触及和纠正该代码 。 您/ 您的图书馆不知道用户提供的代码 应该 正在做什么 。 )

否。我认为,best 的回答是,将用户提供的代码中出现的任何意外(未检查)例外(未检查的)例外(不包括在您自己的代码中),该代码明确告诉用户错误发生在他的代码中。然后,这取决于称之为您的图书馆代码的应用代码,该代码是处理例外还是“崩溃”。


如果你要求用户用“良好、稳健、系统的方法”来写他们的功能, 我认为你抓错树了。 这不是你真正关心的...

问题回答

我不是一个图形程序程序员,但你可以

 private static final double MIN_X = 0.0000001

 red = 1.0 / Math.max(xpos - 0.5, MIN_X);

显然,如果你允许负数, 你可能不得不降低绝对值。

您总是可以提供参数 < em> asking < / em> 。 它毕竟是他们的代码 - 他们应该知道什么最适合他们的情况 。

接下来的问题是,该参数的合理默认值是什么? 我将说 "return 0.0" 扔出一个例外 都是合理的。 请确认您将其记录下来 。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...