缩放坐标转换

时间:2016-07-26 10:48:42

标签: r scale

我在矩形空间中有一组点。缩放x坐标,使它们以0:

为中心
#original points
x <- scale(runif(10000, min= 0, max= 1000), scale=FALSE)
y <- runif(10000, min= 0, max= 750)

plot(x, y, pch='.')

plot_1

我想将这些点缩放为抛物线,以便y= 0附近的点的x值比y= 750附近的x值更接近,从根本上扭曲图像:

#SC = scale
SC <- 0
x_scale = x * (y + SC)
y_scale = y * (y + SC)

plot(x_scale,y_scale, pch='.')

plot_2

然而,有时候,我并不想要一个完整的抛物线。我希望有一点缓冲区:

SC <- 200 
x_scale_200 = x * (y + SC)
y_scale_200 = y * (y + SC)

plot(x_scale_200, y_scale_200, pch='.')

plot_3

SC接近无穷大时,绘制的空间接近原始矩形:

SC <- 10000
x_scale_10k = x * (y + SC)
y_scale_10k = y * (y + SC)

plot(x_scale_10k, y_scale_10k, pch='.')

plot_4

我想创建一个变量T,将SC从0缩放到1.我基本上不知道随着SC变大,变形程度如何变化

在我看来,指定T = 0的函数会产生一个抛物线,其中T = 1会产生一个矩形。我可以将T乘以10,000并使用它(只是假设结果足够接近矩形),但T = 0T = 0.1之间的差异将远大于T = 0.9T = 1.0之间的差异。 TT之间的差异。我希望-(void) buttonWasPressed:(UIButton)sender { switch (sender.tag) { case 1 : // open your webview case 2: // write your code here if other than opening view controller default : // open view controllers } } 能够扩大“翘曲”的程度。线性。关于(线性缩放)<int-sftp:inbound-channel-adapter id="inboundMeasuremntFtpReceiveAdapter" session-factory="inboundMeasurementSftpSession" auto-startup="${ftp_measurement_autostart}" local-directory="#{'${dir_interface_home}' + '${dir_interface}' + '${dir_inbound_measurement}' + '${dir_data}'}" channel="inboundMeasuremntSftpReceiveChannel" remote-directory="${ftp_measurement_remote_dir}" filename-pattern="*.txt" > <int:poller id="inboundMeasurementSftpPoller" trigger="inboundMeasurementFtpTrigger" max-messages-per-poll="-1" error-channel="inboundMeasurementSftpErrorEnrichChannel"> </int:poller> </int-sftp:inbound-channel-adapter> Metadata store class package com.deere.componentdatafiles.nondeerefile; import java.io.Closeable; import java.io.Flushable; import java.io.IOException; import net.spy.memcached.AddrUtil; import net.spy.memcached.MemcachedClient; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.integration.metadata.ConcurrentMetadataStore; public class MemcacheMetadatastore implements ConcurrentMetadataStore,InitializingBean, DisposableBean, Closeable, Flushable { MemcachedClient cache = null; public MemcacheMetadatastore() { super();try { cache = new MemcachedClient(AddrUtil.getAddresses("URL")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();} } @Override public String get(String key) { // TODO Auto-generated method stub return (String) cache.get(key); } @Override public void put(String key, String value) { putIfAbsent(key, value); } @Override public String remove(String key) { // TODO Auto-generated method stub return cache.delete(key).toString(); } @Override public void flush() throws IOException { // TODO Auto-generated method stub } @Override public void close() throws IOException { flush(); } @Override public void destroy() throws Exception { flush(); } @Override public void afterPropertiesSet() throws Exception { // TODO Auto-generated method stub } @Override public String putIfAbsent(String key, String value) { String fileValue = get(key); if (fileValue == null && "".equals(fileValue)) { cache.set(key, 0, value); return null; } return fileValue; } @Override public boolean replace(String arg0, String arg1, String arg2) { // TODO Auto-generated method stub return false; } } 与变形的数学关系以及如何在此处进行编码只是有点遗失。

我考虑过在数学论坛上发帖,但认为它仍适合stackoverflow。

1 个答案:

答案 0 :(得分:0)

虽然我最初从未解决过这个问题(事实证明我并不需要),但我碰巧遇到了这个问题(4年后),答案对我来说似乎很明显。

一种解决方案是使用logit函数转换输入(在这种情况下,需要使用0.5到1而不是0到1,但这也可以缩放。因为R不喜欢Inf( logit(1)的结果),必须从1中减去一个小值。然后将其缩放1000(基于某种摆弄选择),以将抛物线缩放为矩形。

lbl = tk.Label(self, text = 'Verifying Trustee Public Keys')


lbl.grid(row = 2, column = 0)