9月份,我将向工程学院的学生们提供C语言的第一次讲座(通常我会教数学和信号处理,但我也做过很多C语言的实际工作,没有给他们讲课).计算机科学不是他们的主题(他们更多地研究电子和信号处理),但他们需要有良好的编程背景(其中一些可能会成为软件开发人员)
今年将是他们学习C的第二年(他们应该知道指针是什么以及如何使用它,但当然,这个概念尚未被同化)
除了经典的东西(数据结构,经典算法......),我可能会把我的一些讲座集中在:
根据您的经验,您的老师从未教过您的C中最重要的概念是什么?我应该关注哪个特定点?
例如,我应该将它们介绍给某些工具(lint,......)吗?
我想在Google地图上添加叠加图片.该图像是我生成的SVG文件(带有SVGFig的Python).
我使用以下代码:
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(48.8, 2.4), 12);
// ground overlay
var boundaries = new GLatLngBounds(new GLatLng(48.283188032632829, 1.9675270369830129), new GLatLng(49.187215000000002, 2.7771877478303999));
var oldmap = new GGroundOverlay("test.svg", boundaries);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addOverlay(oldmap);
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,它适用于Safari 4,但它不适用于Firefox(使用Safari 3,背景不透明).
有没有人知道如何覆盖SVG?
PS1:我喜欢读一些作品本或swa.ethz.ch/googlemaps的源代码,但似乎他们必须使用JavaScript代码来分析SVG并添加一个所有元素一个(但我没有理解所有来源...).
PS2:SVG由不同的填充路径和圆圈组成,具有透明度.如果没有解决方案覆盖我的SVG,我可以使用2种替代解决方案:
但我真的不喜欢第一种解决方案,因为位图的质量很差,而且生成抗锯齿的时间也是如此.
对于第二种解决方案,弧,椭圆和圆必须分解成小的折线.为了取得好成绩,很多都是必要的.但是我有大约3000个圆弧和圆圈来绘制,所以......
但我有另一个(较小的)问题.我正在使用Firefox 3.5和Safari 4(在Mac上),当我在XHTML中嵌入SVG时,我根本没有相同的结果.
我可以使用<object>或<embedded>元素(但我认为最后一个被弃用).我这样使用它们:
<div id="map_canvas" style="width: 900px; height: 900px">
<object data="test.svg" width="100%" height="100%" type="image/svg+xml"/>
</div>
Run Code Online (Sandbox Code Playgroud)
并且SVG的大小和规模与Firefox和Safari不同.在我的SVG中width,height和,viewBox都被定义了.
有没有办法在所有浏览器中获得相同的结果(我不关心不支持SVG的IE ...所以"所有浏览器"至少意味着最新版本的Firefox,Opera和Safari) ?? 也许我忘了定义的东西?
编辑:我也注意到,使用<object>,SVG是透明的FF,但不透明的Safari ... :(是否有"标准"的方式来包含SVG?
谢谢您的帮助
假设我有一个元素列表,我想根据某个函数(例如到另一个元素的距离)只选择其中一些元素.
我希望得到一个元组列表,包括距离和元素.所以,我写了下面的代码
result = [ ( myFunction(C), C) for C in originalList if myFunction(C) < limit ]
Run Code Online (Sandbox Code Playgroud)
但这myFunction是一个非常耗时的功能,而且originalList相当大.这样做,myFunction将为每个选定的元素调用两次.
那么,有没有办法避免这种情况?
我还有其他两种可能性,但它们并不是那么好:
第一个是创建未过滤的列表
unfiltered = [ (myFunction(C),C) for C in originalList ]
Run Code Online (Sandbox Code Playgroud)
然后对它进行排序
result = [ (dist,C) for dist,C in unfiltered if dist < limit ]
Run Code Online (Sandbox Code Playgroud)
但在那种情况下,我复制了我
originalList并浪费了一些内存(列表可能非常大 - 超过10,000个元素)
第二个是棘手的,不是非常pythonic,但有效(我们可以做的最好,因为每个元素应该评估一次函数).myFunction将它的最后
结果存储在全局变量中(lastResult例如),并在List comprehension中重用该值
result = [ (lastResult,C) for C in originalList if myFunction(C) < limit ]
Run Code Online (Sandbox Code Playgroud)你是否有更好的想法以高效和pythonic的方式实现这一目标?
谢谢你的回答.
我需要你的帮助,谢谢你阅读我的问题!我目前正在编写一个将使用Direket Form 2 Transposed Filter的java Programm.我知道Matlab中的函数过滤器会做得很好,但我必须使用Java.所以有人知道你实现这个Direkt Form 2 Transposed,这个数学函数:
y(n)= b(1)*x(n)+ b(2)*x(n-1)+ ... + b(nb + 1)*x(n-nb) - a(2)*y(n-1) - ... - a(na + 1)*y(n-na)
在任何Programmm语言?所有这一切都有希望成为一个方向,所以我可以弄明白!也许有一个C Lib实现了一些matlab函数,就是任何东西.
谢谢你的时间
你的Elektro
跟进:
我尝试了几天来了解你的功能,但我做不到.
这是Matlab的功能:过滤器
我所知道的是我在matlab中使用这样的函数:
newArray = filter(1,LPC_Faktor,OldArray)
我所要做的就是实现过滤功能.
你能再次帮忙吗?
谢谢
电力币