我完全厌倦了添加Rectangle路径图.下面是我尝试过的代码,但它没有正确的结果Rectangle:
PathGeometry geom = new PathGeometry();
Geometry g = new RectangleGeometry(myrectangel);
geom.AddGeometry(g);
PathFigureCollection collection = geom.Figures;
pathfigure = collection[0];
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?
鉴于下图:

求content step与thumb height和成正比的值thumb step。
content step 是通过垂直位置的像素滚动量。
这里的公式是什么?
我正在尝试编写程序,通过其宽度和高度及其左上角点来指定矩形。我希望程序允许用户输入点 x,y,然后我的目标是让程序确定该点是否在矩形内部。
到目前为止,这是我的代码,但我不确定如何继续。谁能帮助我实施bool Rectangle.Contains(x, y)?
public struct Rectangle
{
// declare the fields
public int Width;
public int Height;
public int Top;
public int Left;
// define a constructor
public Rectangle(int Width, int Height, int Top, int Left)
{
this.Width = Width;
this.Height = Height;
this.Top = Top;
this.Left = Left;
}
public bool Contains(int x, int y) { }
}
class MainClass
{
public static void Main()
{
Console.WriteLine("Creating a Rectangle instance");
Rectangle myRectangle = new Rectangle(6, …Run Code Online (Sandbox Code Playgroud) 使用下面的代码(感谢这里的几个帖子),我画了一个矩形,我想要可调整大小和可移动.两个锚(左上角和右下角)做我想要的,最后一个(中下)移动矩形,但是两个第一个锚不跟随矩形.
当我让它们移动时,它们的监听器会调整矩形的大小.
package application;
import javafx.application.Application;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.scene.Cursor;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.Shape;
import javafx.scene.shape.StrokeType;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Main extends Application {
private Rectangle rectangle;
private Group group;
private Scene scene;
private Stage primaryStage;
private ObservableList<Double> Coins;
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
group = new …Run Code Online (Sandbox Code Playgroud) 我有 N 个矩形,所有的尺寸都相同rectWidth * rectHeight。我有一个尺寸为areaWidth * areaHeight的区域。我想在保持矩形纵横比的区域内放置 N 个矩形,调整矩形的大小以使其适合。矩形之间我想要的间隔空间。
矩形的尺寸应该是多少才能将它们全部放在矩形内并保持纵横比?
我的任务是在画布上绘制许多矩形,但它们都有一个旋转角度,它们必须在画布上旋转。我在寻找此问题的解决方案时遇到的许多建议都指出了绘制矩形和旋转画布的方法(Canvas.rotate(angle)),但它会旋转所有画布,并且只能使用一个矩形。在画布上绘制许多旋转矩形的最佳方法是什么?由于时间效率和内存的原因,我想绘制矩形(单色,使用 Paint),而不是位图。
我目前要做的主要方法是创建大量画布并在每个画布上绘制一个矩形,并考虑矩形的角度来旋转画布。我认为这不是一个聪明的方法,因为有很多画布,对于每个画布,我应该创建一个单独的SurfaceHolder,这是一团糟......
请注意,对于每个矩形,我都有其 4 个角的坐标,即宽度、高度、中心、角度。
我正在尝试围绕其中心旋转一个矩形。使用 GraphicsContext 即 gc 将旋转绘制到画布上。这是我的绘图代码。
gc.save();
gc.translate(center.x, center.y);
gc.rotate(this.angle);
gc.strokeRect(0,0, this.width, this.height);
gc.restore();
Run Code Online (Sandbox Code Playgroud)
这会将矩形移动到其中心,但随后会围绕其左上角点旋转矩形。我尝试减去侧面长度和宽度的一半,但这只会让它飞得到处都是。我数学很差,也许这里有更好的人可以告诉我我做错了什么。
如果需要该信息,我还存储了矩形的所有四个点(角)。
谢谢,乔
每个矩形都有 x 和 y 坐标、宽度和高度。
屏幕的总宽度为 maxWidth,总高度为 maxHeight。
我有一个包含所有已绘制矩形的数组。
我正在开发一个网络应用程序,用户将使用鼠标在屏幕上绘制矩形。为此,我使用 Javascript 在画布元素上绘制。
挑战在于矩形不得在任何给定点相交。
我试图避免这种情况:
或这个:
这就是我的目标输出应该是这样的:
我基本上需要的是一种算法(最好使用 JavaScript),它可以帮助定位足够的空间来绘制知道矩形的轴、高度和宽度的矩形。
我正在开发一个用于镜像目标窗口的用户控件,它在内部使用 Win32 DWM API 来注册/取消注册缩略图,并在父窗体调整大小或移动时更新缩略图位置和位置。
这是我的应用程序的结构:
应用程序/我的用户控件在“正常”条件下按预期工作(这意味着,在操作系统中使用默认的 Windows 主题时),我录制了下一个视频,演示了用户控件的使用和行为,因此您可以获得对这一切有更好的了解,并看到控制按预期工作:
当我设法为操作系统使用不同的主题时,问题就开始了,特别是在 Windows 10 中为窗口添加不可见边框的任何主题,这可以像使用WindowBlinds等第三方软件(主题名为“ Flat Dark ”),也许修改注册表中的某些 Windows 指标值也可以重现 Windows 10 中添加可见边框的情况,但我不记得如何通过注册表执行此操作,抱歉。
好吧,最主要的是,在 Windows 10 中,当设法使用具有非隐形边框的窗口时(通过提到的第 3 方软件或通过其他可能的方式),我在用户控件类中使用的算法来检索其相对于父窗体的坐标,它会中断,然后我得到意外的坐标,因此 DWM 缩略图未绘制在应绘制的正确位置。
我录制了下一个视频,您可以在其中看到差异并理解问题:
在视频中,我首先展示了在“正常”条件下运行的程序,然后关闭程序,更改操作系统主题,再次运行程序,从这一点上您可以看到 DWM 缩略图没有以正确的方式绘制坐标...
我所有的猜测都表明,当表单/窗口应用了不可见的 Windows 10 边框时,我遇到的问题与表单的客户端/非客户端区域有关。
为什么我这么想?因为如果我将主题更改为具有可见边框的窗口,然后我像这样删除表单的边框:
this.FormBorderStyle = FormBorderStyle.None;
Run Code Online (Sandbox Code Playgroud)
...然后我的应用程序再次正常工作,而我的表单是无边框的,因此在这些特定情况下,这一定是与我的表单的客户/非客户区域相关的问题,而且我不明白我做错了什么当我在这些情况下计算控件的相对位置时,当表单有边框时。
最后,我在这里分享完整的解决方案,它包括我正在开发的用户控件以及一个演示应用程序(与您在上面的视频中看到的相同)。
请注意,源代码是用 VB.NET 编写的,但这一事实与我在这个问题中标记的语言无关,因为我接受 C# 或 VB.NET 中的任何解决方案,所以请不要指责这一点,因为标记的语言问题中的问题是一回事,而用一种特定语言编写的共享解决方案是另一回事。
没有必要下载和检查源代码,所有源代码中唯一相关的部分是 的坐标分配relativePos,这里:
Public Class ElektroDwmThumbnail : Inherits UserControl
Protected Function GetThumbnailRectangle() As Rectangle
Dim relativePos As Point = Me.ParentForm.PointToClient(Me.PointToScreen(Point.Empty))
' …Run Code Online (Sandbox Code Playgroud) 在多次看到这个问题并用旧的(且不可用的)代码回复后,我决定重做所有内容并发布有关它的信息。
矩形的定义如下:
center:x以及y他的位置(记住 0;0 是左上,所以 Y 向下)size:x以及y他的尺寸angle其旋转(以度为单位,0 度是沿着 OX 轴并顺时针旋转)目标是知道两个矩形是否发生碰撞。