我在一个窗口画了一条线,我让用户拖动它.所以,我的线由两点定义:(x1,y1)和(x2,y2).但是现在我想在我的线末端绘制"帽子",也就是说,在我的每个终点处都有短垂线.大写字母的长度应为N像素.
因此,为了在终点(x1,y1)绘制我的"帽"线,我需要找到形成垂直线的两个点,并且其每个点距离点(x1,y1)的N/2个像素.
那么你如何计算一个点(x3,y3),因为它需要与已知线的终点(x1,y1)保持垂直距离N/2,即由(x1,y1)定义的线和(x2,y2)?
我有三个X/Y点形成抛物线.我只需要计算抛物线的顶点是通过这三个点的.最好快速一点,因为我必须做很多这些计算!
"Ask A Scientist"网站提供了这样的答案:
抛物线的一般形式由下式给出:A*x ^ 2 + B*x + C = y其中A,B和C是任意实常数.你有三对点是(x,y)有序对.将每个点的x和y值替换为抛物线的等式.您将得到三个未知数的三个LINEAR方程,即三个常数.然后,您可以轻松地为A,B和C的值三个方程式求解这个系统,并且您将得到与您的3个点相交的抛物线方程.顶点是一阶导数为0的位置,一个小代数给出了顶点的(-B/2A,C - B ^ 2/4A).
很高兴看到在C#或C++中进行此计算的实际代码.任何人?
我的应用程序是一个C#Windows窗体应用程序和.Net以某种方式使我的主菜单栏和工具条按钮的默认行为是你必须先点击我的应用程序的窗口(任何地方),然后才能让你点击菜单或工具条按钮.我怎么能改变这个?
像记事本和写字板这样的旧应用程序不会这样做.但是所有的Microsoft Office应用程序都可以.但这太烦人了!
它变得更糟,因为我的应用程序弹出辅助窗口,每次我更换窗口时,我必须首先激活爆破窗口才能做任何事情.啊!
我希望有一些全局方法来改变这种行为,所以我不必单独覆盖许多控件(我没有尝试过).有人知道吗?
请注意,我的应用程序对话框上的控件不会显示这种愚蠢的行为.他们为什么不同?
我的.Net Winforms应用程序在我的主窗口中创建了三个OpenGL渲染上下文,然后允许用户弹出其他窗口,其中每个窗口有两个以上的渲染上下文(使用拆分器).在第26个渲染环境中,事情开始变得非常缓慢.新的渲染上下文不需要花费几毫秒来渲染帧,而是需要5到10秒.它仍然有效,只是真的很慢!并且OpenGL不会返回任何错误(glGetError).
其他窗口工作正常.只是在一定数量的减速后新的渲染上下文.如果我关闭那些窗户,一切都很好 - 直到我重新打开足够的窗户才能通过限制.每个渲染上下文都有自己的线程,每个都使用一个简单的着色器.当我上传纹理时,似乎会发生减速.但是纹理的大小对我可以创建的上下文数量没有影响,OpenGL窗口的大小也没有影响.
我正在运行nVidia显卡,并在不同的GPU上看到这个,具有不同的内存量和不同的驱动程序版本.这是怎么回事?应用程序可以创建多少渲染上下文是否有一些限制?
是否有其他人同时拥有大量渲染上下文的应用程序?