如果我有一个标志,那就说jpg甚至是png.有关如何使用它来定义路径几何的任何建议?如果有任何建议可以提供我如何在混合中做到这将是非常好的.谢谢
我有一个路径数据,我从syncfusion程序coppy它.我在我的页面中有一个包含该数据的路径,并希望在路径中精确地设置对象的动画(在路径中间),但问题是对象在路径的轮廓(环境)上移动.
这是代码:
<Canvas ClipToBounds="False" Margin="435,58,279,445" Width="70" Height="70">
<Path Name="pp" Data="M29.073618888855,0C29.1124091148376,1.1444091796875E-05 29.1515617370605,0.00176620483398438 29.1909990310669,0.00532913208007813 29.810998916626,0.0533294677734375 30.3119988441467,0.530315399169922 30.3919982910156,1.14829635620117L30.5836410522461,2.65130615234375 31.2817029953003,8.12605285644531 34.8569983541965,36.1663000583649 38.6119983196259,11.4410037994385C38.6989989280701,10.8670196533203 39.1539988517761,10.4180335998535 39.7279987335205,10.3390350341797 40.3039989471436,10.2600383758545 40.8659987449646,10.5700283050537 41.1039986610413,11.0990142822266L44.5239992141724,18.6847972869873 62.6889991760254,18.6847972869873C63.4129981994629,18.6847972869873 63.9999980926514,19.2727813720703 63.9999980926514,19.9957599639893 63.9999980926514,20.720739364624 63.4129981994629,21.3077239990234 62.6889991760254,21.3077239990234L43.6779985427856,21.3077239990234C43.1629986763,21.3077239990234,42.6949987411499,21.004732131958,42.4809985160828,20.5357456207275L40.5379986763,16.2248687744141 36.0409992933273,45.8410243988037C35.9439988136292,46.4820065498352,35.3929988443851,46.9559931755066,34.7459992468357,46.9559926986694L34.729998499155,46.9559926986694C34.0749988555908,46.9479932785034,33.5279988050461,46.4590072631836,33.4449987411499,45.8100252151489L28.5969982147217,7.7971076965332 19.7799987792969,38.5482323169708C19.6119985580444,39.1362158469856 19.0699996948242,39.5222048461437 18.4459991455078,39.4962055683136 17.8359985351563,39.4622065722942 17.3289985656738,39.0092194601893 17.2269992828369,38.4062369465828L13.6579990386963,17.2688388824463 10.7719993591309,23.3446655273438C10.5559997558594,23.8016519546509,10.0949993133545,24.0936441421509,9.58799934387207,24.0936441421509L1.31099700927734,24.0936441421509C0.587997436523438,24.0936441421509 0,23.5056610107422 0,22.7826805114746 0,22.0577011108398 0.587997436523438,21.4717178344727 1.31099700927734,21.4717178344727L8.75799942016602,21.4717178344727 13.0749988555908,12.3859767913818C13.3199996948242,11.8689918518066 13.8699989318848,11.57200050354 14.4389991760254,11.6499977111816 15.0059986114502,11.7299957275391 15.4579982757568,12.1669826507568 15.5519981384277,12.7309665679932L18.8509979248047,32.2744116783142 27.8319988250732,0.952301025390625C27.9913740158081,0.391693115234375,28.4917645454407,-0.000171661376953125,29.073618888855,0z"
Stretch="Uniform" Fill="White" Width="70" Height="70" StrokeThickness="0" />
<Rectangle Fill="#FFFF4600" RenderTransformOrigin="0.5,0.5" Width="4" Height="4" Canvas.Top="4">
<Rectangle.RenderTransform>
<TransformGroup>
<MatrixTransform x:Name="tt">
<MatrixTransform.Matrix>
<Matrix />
</MatrixTransform.Matrix>
</MatrixTransform>
</TransformGroup>
</Rectangle.RenderTransform>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard>
<MatrixAnimationUsingPath Duration="0:0:10" Storyboard.TargetName="tt" …
Run Code Online (Sandbox Code Playgroud) 我试图从我从Adobe Illustrator生成的一组路径中创建一个可重新调整大小的绘图,但无法弄清楚如何使其重新调整大小并保持填充.原始路径数据是:
<Path Fill="#ff221e1f" Data="F1 M 65.778,45.310 L 85.092,45.310 L 85.092,47.630 L 68.504,47.630 L 68.504,63.174 L 83.700,63.174 L 83.700,65.494 L 68.504,65.494 L 68.504,84.402 L 65.778,84.402 L 65.778,45.310 Z"/>
<Path Fill="#ff221e1f" Data="F1 M 95.300,64.218 L 101.505,64.218 C 107.538,64.218 111.482,60.854 111.482,55.692 C 111.482,49.718 107.074,47.282 100.926,47.282 C 98.257,47.282 96.286,47.572 95.300,47.804 L 95.300,64.218 Z M 92.574,45.832 C 94.952,45.310 98.316,45.020 100.984,45.020 C 106.087,45.020 109.278,46.122 111.540,48.268 C 113.222,49.892 114.266,52.502 114.266,55.228 C 114.266,60.506 111.133,63.870 106.610,65.436 L 106.610,65.552 C 109.742,66.538 111.713,69.496 112.642,73.846 C 113.976,79.936 114.730,82.836 115.542,84.402 L 112.642,84.402 …
Run Code Online (Sandbox Code Playgroud) 在WPF UI中,我有通过bezier路径连接的节点,如下所示:
当用户拖动节点时,需要实时更新连接路径.但是,我注意到一些减速(特别是如果一个节点连接到许多其他节点,或者一次拖动多个节点).我描述了它,主要问题似乎在这里:
这是每次更改源属性或目标属性时调用的函数.每当任何控制点发生变化时,构成路径的几何体似乎在内部重新生成.也许如果有一种方法可以防止几何体重新生成,直到设置了所有相关的依赖属性之后?
编辑: Mart使用StreamGeometry的解决方案以指数方式加速; 功能无处接近瓶颈.一点反映表明PathGeometry在内部使用StreamGeometry,每次更改任何依赖项属性时,都会重新计算StreamGeometry.所以这种方式就是切断了中间人.最终结果是:
private void onRouteChanged()
{
Point src = Source;
Point dst = Destination;
if (!src.X.isValid() || !src.Y.isValid() || !dst.X.isValid() || !dst.Y.isValid())
{
_shouldDraw = false;
return;
}
/*
* The control points are all laid out along midpoint lines, something like this:
*
* --------------------------------
* | | | |
* | SRC | CP1 | |
* | | | |
* --------------------------------
* | | | |
* …
Run Code Online (Sandbox Code Playgroud) 我裁剪画布我有一个菱形PolyLineSegment
的PathGeometry
.我试图为它的PointCollection设置动画,但似乎无法解析TargetProperty.这是谷歌发现的唯一其他参考资料,这正是我正在努力做的事情和相同的事情PropertyPath
:http://forums.silverlight.net/forums/p/22239/78225.aspx
甚至可以Point
从a PointCollection
中获取a 来改变它在动画中的值吗?
有没有人知道一个很好的算法,用于将矢量路径转换为由三角形/四边形面组成的描边路径?理想情况下使用圆形连接.
基本上我正在尝试绘制一条粗路径,其颜色基于随路径距离而变化的值.我想通过将路径上的距离作为1d纹理坐标进行转换,将路径转换为三角形/四边形并对其进行纹理映射,然后可以使用该坐标检索三角形角落处的颜色并进行插值.任何其他关于如何做这个看起来不会很糟糕并且可以消除锯齿的建议将不胜感激.
我目前正在使用AGG进行渲染,但我可以使用替代方案,前提是它没有太多依赖项.我想用于渲染的后端并不重要.虽然AGG可以描边路径,但VertexSource接口不允许除x/y坐标之外的其他顶点信息.另外,在使用普通的conv_stroke时,将我的颜色映射到光栅化器中看起来并不可行.
嘿大家我试图总结并提出基本问题和我迄今为止无效的想法:S
基本上我的问题是:用户将元素添加到一起,并且我想基于这些图创建新元素,以便可以为用户定义的元素创建新路径.可以说我有一个正方形和一个三角形.用户将其与房屋相结合.现在我想让房子成为用户的元素.为此,我需要元素的路径,我该如何创建它?
我的想法 使用的图形元素基于路径字符串.因此,我希望将这些转换为我稍后可以使用的几何元素.我在下面的答案中使用了AndréMeneses提供的代码,代码在这里复制:
public static Geometry PathMarkupToGeometry(ShieldGearViewModel shieldGearModelRec)
{
string pathMarkup = shieldGearModelRec.Gear.Path;
try
{
string xaml =
"<Path " +
"xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>" +
"<Path.Data>" + pathMarkup + "</Path.Data></Path>";
var path = System.Windows.Markup.XamlReader.Load(xaml) as System.Windows.Shapes.Path;
// Detach the PathGeometry from the Path
if (path != null)
{
path.Height = shieldGearModelRec.Gear.Height;
path.Width = shieldGearModelRec.Gear.Width;
path.Fill = new SolidColorBrush(Colors.Green);
path.Stretch = Stretch.Fill;
Geometry geometry = path.Data;
//Test not working, exception is thrown
//Rect transRect = new Rect(shieldGearModelRec.Gear.x, shieldGearModelRec.Gear.y, shieldGearModelRec.Gear.Width, shieldGearModelRec.Gear.Height); …
Run Code Online (Sandbox Code Playgroud) 我有一个PathGeometry定义一个像这样的路径:
原始路径http://devblog.ailon.org/devblog/_stuff/wpfpathgeoquestion/original.gif
这是一个简化的例子.实际上它可以有任何类型的段(线,弧,贝塞尔).
现在我需要在段关节点中切出某种类型的孔(正方形,圆形等),以便最终结果如下所示:
带孔http://devblog.ailon.org/devblog/_stuff/wpfpathgeoquestion/with_holes.gif
我最初的想法是使用GeometryCombineMode.Exclude将原始PathGeometry与其他包含正方形(或其他)的几何图形组合在一起.不幸的是,如果未填充路径,则会生成空几何.如果填充它会产生不正确的结果.
所以我被卡住了.在带有线段的简单示例中,我可以预先计算边界点并使我的线段在那里结束,但是对于弧和贝塞尔曲线,这将有点过分.
有谁知道如何实现这一目标?
注意:我需要擦除这些孔(透明),因此在它上方放置一个白色方块不会.
我对一个简单的PathGeometry对象有一个奇怪的错误,我似乎无法搞清楚.如果有人能向我解释为什么这不起作用,我将不胜感激.
这是一个工作路径的示例,它绘制一个小三角形:
<Path Data="M 8,4 L 12,12 4,12 8,4 Z" Stroke="White" />
Run Code Online (Sandbox Code Playgroud)
这是一个似乎对我不起作用的Path的示例:
<Path Stroke="White">
<Path.Data>
<PathGeometry Figures="M 8,4 L 12,12 4,12 8,4 Z" />
</Path.Data>
</Path>
Run Code Online (Sandbox Code Playgroud)
Data和Figures属性中的字符串是相同的,但后一个示例导致异常:
属性数字的无效属性值M 8,4 L 12,12 4,12 8,4 Z.
我最想做的是将PathGeometry放入ResourceDictionary并将其作为{StaticResource}引用,以便我可以重复使用我的形状.
编辑:
我的解决方案是尝试使用StaticResource引用PathGeometry,而不是引用字符串资源.
<sys:String x:Key="TriangleShape">M 8,4 L 12,12 4,12 8,4 Z</sys:String>
...
<Path Data={StaticResource TriangleShape}" />
Run Code Online (Sandbox Code Playgroud) 我正在为我的游戏设计AI时创建一个简单的游戏并提出这个问题:在笛卡尔坐标的矩形内给出一组N个点,我需要找到通过这个矩形的最宽的直线路径.路径必须为空(即不包含任何点).
我想知道是否有任何有效的算法来解决这个问题?您能否提出任何与此问题相关的关键字/论文/任何内容?
编辑:矩形始终由角落中的4个点定义.我添加了一张图片用于说明.上图中的路径由两条红线决定
pathgeometry ×10
wpf ×5
geometry ×4
c# ×3
path ×3
silverlight ×3
animation ×2
.net ×1
algorithm ×1
c++ ×1
performance ×1
xaml ×1